1// re2c $INPUT -o $OUTPUT -f 2#define NULL ((char*) 0) 3#define YYCTYPE char 4#define YYCURSOR p 5#define YYLIMIT p 6#define YYMARKER q 7#define YYFILL(n) 8 9YYCTYPE yych; 10int yySavedState; 11 12#define YYGETSTATE() yySavedState 13#define YYSETSTATE(n) yySavedState = n; 14 15#include <stdio.h> 16 17int scan(char *p) 18{ 19 int n = 0; 20 char *q; 21 22 printf("[--------------\n"); 23 printf("%s\n", p); 24 printf("]--------------\n"); 25start: 26/*!re2c 27[^\n\000]* '\n' 28 { 29 ++n; 30 goto start; 31 } 32[^\n\000]* '\000' 33 { 34 return n; 35 } 36*/ 37} 38 39int main(int argc, char **argv) 40{ 41 int n = 0; 42 char *largv[4]; 43 44 if (argc < 2) 45 { 46 argc = 4; 47 argv = largv; 48 argv[1] = ""; 49 argv[2] = "1\n\n"; 50 argv[3] = "1\n2\n"; 51 } 52 while(++n < argc) 53 { 54 printf("%d\n", scan(argv[n])); 55 } 56 return 0; 57} 58