#define bool int
#define TRUE 1
#define FALSE 0
+#define WEIRDINT (1<<(sizeof(int)*8-1))
#define btoa(EXPR) ((EXPR)?"TRUE":"FALSE")
#define coalesce(VAR,EXPR) (VAR?VAR:(EXPR))
#define _CLL1_GLOBALS char *NIL="NULL", *EOL="\n", *OFS=" ", *IFS=" \t\n"; unsigned RANDOM_SEED=0;
#define for_search(NODE,HEAD,EXPR) for_each(NODE,HEAD) if(EXPR)
#define for_file_lines(STR,FNAME) /* _NEW(CTX,get_context()) file_read(FNAME) for(use_context(_CTX),STR=file_line(_F);release_context(_M),(*S && !feof(_F));STR=file_line(_F),end_context()) _CATCH */
#define for_input_lines(S,L) /* _NEW(CTX,get_context()) for(use_context(_CTX),STR=file_get_line(stdin);release_context(_M),(*S && !feof(stdin));STR=file_get_line(stdin)) _CATCH */
-#define for_ints(VAR,...) _NEW(I,0) while( (VAR=_cll1_for_ints(_I++,__VA_ARGS__,-1))>=0 )
+#define for_ints(VAR,...) _NEW(I,0) while( (VAR=_cll1_for_ints(_I++,__VA_ARGS__,WEIRDINT))!=WEIRDINT )
#define for_strs(VAR,...) _NEW(I,0) while( (VAR=(char *)_cll1_for_ptrs(_I++,__VA_ARGS__,NIL))!=NIL )
#define for_args _NEW(I,1) while(_I++<argc)
#define this_arg argv[_I]
#define _ECHO void _cll1_echo(char *s,...) _CLL1_FECHO(stdout)
#define _FECHO void _cll1_fecho(FILE *f,char *s,...) _CLL1_FECHO(f)
#define _CLL1_OUT _PRINT _FPRINT _ECHO _FECHO
-#define _FOR_INTS int _cll1_for_ints(int i, int n, ...) { int j=0;va_list ap; /* <-' */ va_start(ap,n); while(n>=0 && j++<i) n=va_arg(ap,int); return n; }
+#define _FOR_INTS int _cll1_for_ints(int i, int n, ...) { int j=0;va_list ap; /* <-' */ va_start(ap,n); while(n!=WEIRDINT && j++<i) n=va_arg(ap,int); return n; }
#define _FOR_PTRS void *_cll1_for_ptrs(int i, void *v, ...) { int j=0;va_list ap; /* <-' */ va_start(ap,v); while(v!=(void *)NIL && j++<i) v=va_arg(ap,void *); return v; }
#define _CLL1_ARGS _FOR_INTS _FOR_PTRS
#define _STRCMP int _cll1_strcmp(char *a,char *b) { if(a && b) return strcmp(a,b); else return (int)(a-b); }
int i;
char *s;
- echo("for_ints(i in(8,1,2,745,32,64,27,4) ): ");
- for_ints(i, 8,1,2,745,32,64,27,4 ) printf(" [%d]",i);
+ echo("for_ints(i, 8,1,-2,745,-32,-64,27,4) ): ");
+ for_ints(i, 8,1,-2,745,-32,-64,27,4 ) printf(" [%d]",i);
print("");
- echo("for_strs(s in( \"aasd\",\"snres\",\"sdfrm\",\"ojffgt\",\"wweqwe\" )): ");
- for_strs(s, "aasd","snres","sdfrm","ojffgt","wweqwe" ) echo(" [",s,"]");
+ echo("for_strs(s, \"aasd\",\"snres\",\"sdfrm\",\"ojffgt\",\"wweqwe\" )): ");
+ for_strs(s, "aasd","snres","sdfrm","ojffgt","wweqwe" ) echo(" [",s,"]");
print("");
}