1 /* Generated by re2c */
2 // re2c $INPUT -o $OUTPUT -i --tags --input custom
3 #include <stddef.h>
4 #include <stdio.h>
5 
lex(const char * s)6 static void lex(const char *s)
7 {
8 #define YYPEEK()           *s
9 #define YYSKIP()           ++s
10 #define YYBACKUP()         marker = s
11 #define YYRESTORE()        s = marker
12 #define YYSTAGP(t)         t = s
13 #define YYSTAGN(t)         t = NULL
14 #define YYRESTORETAG(t)    s = t
15 #define YYSHIFTSTAG(t, o)  t += o
16     const char *marker, *p0, *p1, *p2, *p3;
17     const char *yyt1;const char *yyt2;const char *yyt3;
18 
19 {
20 	char yych;
21 	yych = YYPEEK();
22 	switch (yych) {
23 	case '0':
24 		YYSTAGP(yyt1);
25 		goto yy4;
26 	case '1':
27 		YYSTAGP(yyt1);
28 		goto yy5;
29 	default:	goto yy2;
30 	}
31 yy2:
32 	YYSKIP();
33 yy3:
34 	{ printf("error\n"); return; }
35 yy4:
36 	YYSKIP();
37 	YYBACKUP();
38 	yych = YYPEEK();
39 	switch (yych) {
40 	case '0':
41 	case '1':	goto yy7;
42 	default:	goto yy3;
43 	}
44 yy5:
45 	YYSKIP();
46 	YYBACKUP();
47 	yych = YYPEEK();
48 	switch (yych) {
49 	case '2':
50 		YYSTAGP(yyt2);
51 		goto yy10;
52 	case '3':
53 		YYSTAGP(yyt2);
54 		goto yy12;
55 	default:	goto yy3;
56 	}
57 yy6:
58 	YYSKIP();
59 	yych = YYPEEK();
60 yy7:
61 	switch (yych) {
62 	case '0':	goto yy6;
63 	case '1':	goto yy9;
64 	default:	goto yy8;
65 	}
66 yy8:
67 	YYRESTORE();
68 	goto yy3;
69 yy9:
70 	YYSKIP();
71 	yych = YYPEEK();
72 	switch (yych) {
73 	case '2':
74 		YYSTAGP(yyt2);
75 		goto yy10;
76 	case '3':
77 		YYSTAGP(yyt2);
78 		goto yy12;
79 	default:	goto yy8;
80 	}
81 yy10:
82 	YYSKIP();
83 	yych = YYPEEK();
84 	switch (yych) {
85 	case '2':	goto yy10;
86 	case '3':	goto yy12;
87 	default:	goto yy8;
88 	}
89 yy12:
90 	YYSKIP();
91 	yych = YYPEEK();
92 	YYSTAGP(yyt3);
93 	goto yy15;
94 yy13:
95 	p0 = yyt1;
96 	p2 = yyt2;
97 	YYRESTORETAG(yyt3);
98 	p1 = yyt2;
99 	YYSHIFTSTAG(p1, -1);
100 	p3 = yyt3;
101 	YYSHIFTSTAG(p3, -1);
102 	{
103             printf("'%.*s', '%.*s', '%.*s', '%.*s', '%s'\n",
104                 p1 - p0, p0,
105                 p2 - p1, p1,
106                 p3 - p2, p2,
107                 s - p3, p3,
108                 s);
109                 return;
110         }
111 yy14:
112 	YYSKIP();
113 	yych = YYPEEK();
114 yy15:
115 	switch (yych) {
116 	case '4':	goto yy14;
117 	default:	goto yy13;
118 	}
119 }
120 
121 }
122 
main(int argc,char ** argv)123 int main(int argc, char **argv)
124 {
125     for (int i = 1; i < argc; ++i) {
126         lex(argv[i]);
127     }
128     return 0;
129 }
130