NIL, OFS, EOL, coalesce()
[svn/Cll1h/.git] / cll1.h
diff --git a/cll1.h b/cll1.h
index a20121df0cd62b356180b42dc92c079f55e34e94..be5797bc6993c5473fa00010a1d0c19a15b7c4be 100644 (file)
--- a/cll1.h
+++ b/cll1.h
 #define not !
 #define and &&
 #define or ||
+#define boolean int
+#define bool_str(VALUE) (VALUE?"TRUE":"FALSE")
 #define TRUE 1
 #define FALSE 0
-#define MAYBE (random()%2)
-#define bool_str(I) (I?"TRUE":"FALSE")
-#define boolean int
+#define MAYBE (int)((RANDOM_SEED?random():(RANDOM_SEED=time(NULL),srandom(RANDOM_SEED),random()))%2)
+#define WHOKNOWS (int)(srandom(time(NULL)),random()%2)
+#define _GLOBALS time_t RANDOM_SEED=0; char *EOL="\n", *OFS=" ", *IFS=" \t\n", *NIL="NULL";
+#define coalesce(VALUE,NOTNULL) ((VALUE)?(VALUE):(NOTNULL))
 #define mem struct
 #define construct struct
 /* ------------------------------------------------------------------- */
 /* ------------------------------------------------------------------- */
 /* 6. C<<1 va_list based library functions, updated 2008-01-22 by xCh. */
 /* ------------------------------------------------------------------- */
-#define _ECHO void _cll1_print(int p,char *s, ... ) { int p2=0; va_list ap; for(va_start(ap,s);s!=(void *)&_cll1_print;s=va_arg(ap,char *)) { if(p) {if(p2) putchar(' '); else p2=1;} fputs(s?s:"",stdout); } va_end(ap); if(p) putchar('\n');}
+#define _ECHO void _cll1_print(int p,char *s, ... ) { int p2=0; va_list ap; for(va_start(ap,s);s!=(void *)&_cll1_print;s=va_arg(ap,char *)) { if(p) {if(p2) putchar(*OFS); else p2=1;} fputs(coalesce(s,NIL),stdout); } va_end(ap); if(p) putchar(*EOL);}
 #define print(...) _cll1_print(1,__VA_ARGS__,(void *)&_cll1_print)
 #define echo(...) _cll1_print(0,__VA_ARGS__,(void *)&_cll1_print)
 /* ------------------------------------------------------------------- */
@@ -261,9 +264,10 @@ obsolete
 /* ------------------------------------------------------------------- */
 /* Voila - here we go !                                                */
 /* ------------------------------------------------------------------- */
-#define define_cll1_globals _ISTACK _SSTACK _FSTACK _MSTACK _RSTACK //_QSTACK
-#define implement_cll1_functions _ECHO /* _GET_STR _GET_MEM */
-#define implement_cll1_library define_cll1_globals implement_cll1_functions
+#define define_cll1_globals _GLOBALS _ISTACK _SSTACK _FSTACK _MSTACK _RSTACK //_QSTACK
+#define implement_cll1_functions _ECHO // _GET_STR _GET_MEM
+#define define_cll1_interfaces //_CAKE
+#define implement_cll1_library define_cll1_globals implement_cll1_functions define_cll1_interfaces
 #define program implement_cll1_library int main(int argc, char **argv)
 /* ------------------------------------------------------------------- */
 #endif
This page took 0.088849 seconds and 4 git commands to generate.