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