#define or ||
#define TRUE 1
#define FALSE 0
+#define bool_str(I) (I?"TRUE":"FALSE")
+#define boolean int
+#define mem struct
+#define construct struct
/* ------------------------------------------------------------------- */
/* 2. C<<1 basic data types - updated 2008-01-07 by xCh. */
/* ------------------------------------------------------------------- */
+#define Create_str(ID,INIT) char *ID=INIT
+#define Define_str(ID) char *ID=NULL
+#define Create_mem(ID,TYPE) struct TYPE *ID=get_mem(TYPE)
+#define Create_mem_in_context(ID,TYPE,CONTEXT) struct TYPE *ID=get_mem_in_context(TYPE,CONTEXT)
+#define Define_mem(ID,TYPE) struct TYPE *ID=NULL
+#define Define_mems(ID1,I2,TYPE) Define_mem(ID1,TYPE);Define_mem(ID2,TYPE)
-#define Create_str(ID,STRATOM) char *ID=get_str(STRATOM);
-#define Create_mem()
+/* .... well.. ehm.. not very useful... :-) */
+#define Create_var(ID,TYPE,INIT) TYPE ID=INIT
+#define Define_var(ID,TYPE) TYPE ID
/* ------------------------------------------------------------------- */
#define list(T) struct T *_next
#define tree(T) struct T *_next;struct T *_seek
#define for_range(VAR,FROM,TO) for( VAR=FROM ; FROM<=TO?VAR<=TO:VAR>=TO ; FROM<=TO?VAR++:VAR--)
#define for_each(A,B) for(A=B; A; A=A->_next)
#define for_search(A,B,C) for_each(A,B) if(C)
-/* to do: #define for_file_lines(STR,F) _NEW_F for() */
+#define for_file_lines(STR,F) /* _NEW_F for() */
+#define for_ints(VAR,...) _NEW_I while(_iterate_ints(&VAR,_I,__VA_LIST) )
+#define for_strs(VAR,...) _NEW_S
/* obsolete #define every(A,B) for( A=B; A; A=A->_next) */
/* obsolete #define search(A,B,C) every(A,B) if(C) */
/* obsolete #define find(A,B,C) search(A,B,C) break; if(A) */
/* ------------------------------------------------------------------- */
/* 5. C<<1 argument handling, updated 2008-01-16 by xCh. */
/* ------------------------------------------------------------------- */
-#define for_arguments _NEW_I if(argc>1) for(_I=1;_I<argc;_I++)
-#define if_argument(VAL) if(eq(argv[_I],VAL))
-#define this_argument argv[_I]
-#define next_argument ((_I+1<argc)?argv[++_I]:NULL)
+#define for_args _NEW_I if(argc>1) for(_I=1;_I<argc;_I++)
+#define if_arg(VAL) if(eq(argv[_I],VAL))
+#define this_arg argv[_I]
+#define next_arg ((_I+1<argc)?argv[++_I]:NULL)
/* ------------------------------------------------------------------- */
/* 6. C<<1 CGI and FASTCGI handling, updated 2008-01-16 by xCh. */
/* ------------------------------------------------------------------- */
#define USE_MODULE_CGI
#endif
#ifdef USE_MODULE_CGI
+#define cgi(MIME) /* _init_cgi */ if(MIME) printf("Content-type: %s\r\n\r\n",MIME);
//todo getcgi(VAR)
-//todo _init_cgi
+//todo define_init_cgi
//todo #define _QSTACK struct _QStack { char *Q; int _23; list(_QStack); } *_Qatom,*_Qstack=NULL;
#endif
/* ------------------------------------------------------------------- */