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