1 /* Generated by re2c */
2 // re2c $INPUT -o $OUTPUT -bci --eager-skip
3 #include <stdlib.h>
4 #include <stdio.h>
5 #include <string.h>
6
7 #define YYGETCONDITION() yy_state
8 #define YYSETCONDITION(s) yy_state = s
9 #define YYCTYPE char
10 #define YYCURSOR p
11 #define YYLIMIT (s+l)
12 #define YYMARKER q
13 #define YYFILL(n)
14
15 #define STATE(name) yyc##name
16
17 static enum YYCONDTYPE yy_state;
18
19 enum YYCONDTYPE {
20 yycINITIAL,
21 yycST_VALUE,
22 };
23
24
scan(char * s,int l)25 int scan(char *s, int l)
26 {
27 char *p = s;
28 char *q = 0;
29 char *t;
30
31 for(;;)
32 {
33 t = p;
34
35 {
36 YYCTYPE yych;
37 unsigned int yyaccept = 0;
38 if (YYGETCONDITION() < 1) {
39 goto yyc_INITIAL;
40 } else {
41 goto yyc_ST_VALUE;
42 }
43 /* *********************************** */
44 yyc_INITIAL:
45 if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
46 yych = *YYCURSOR++;
47 if (yych <= 0x00) goto yy2;
48 if (yych == '$') goto yy6;
49 goto yy4;
50 yy2:
51 { printf("EOF\n"); return 0; }
52 yy4:
53 yy5:
54 { printf("ERR\n"); return 1; }
55 yy6:
56 yych = *YYCURSOR;
57 if (yych <= '@') goto yy5;
58 if (yych <= 'Z') {
59 ++YYCURSOR;
60 goto yy7;
61 }
62 if (yych <= '`') goto yy5;
63 if (yych >= '{') goto yy5;
64 ++YYCURSOR;
65 yy7:
66 {
67 printf("FOUND %s\n", t);
68 continue;
69 }
70 /* *********************************** */
71 yyc_ST_VALUE:
72 if (YYLIMIT <= YYCURSOR) YYFILL(1);
73 yych = *(YYMARKER = YYCURSOR);
74 if (yych <= 0x1F) {
75 if (yych == '\t') {
76 ++YYCURSOR;
77 goto yy12;
78 }
79 } else {
80 if (yych <= ' ') {
81 ++YYCURSOR;
82 goto yy12;
83 }
84 if (yych == '$') {
85 ++YYCURSOR;
86 goto yy14;
87 }
88 }
89 yy11:
90 {
91 YYSETCONDITION(STATE(INITIAL));
92 printf("Found spaces\n");
93 }
94 yy12:
95 if (YYLIMIT <= YYCURSOR) YYFILL(1);
96 yych = *YYCURSOR;
97 if (yych == '\t') {
98 ++YYCURSOR;
99 goto yy12;
100 }
101 if (yych == ' ') {
102 ++YYCURSOR;
103 goto yy12;
104 }
105 goto yy11;
106 yy14:
107 if (YYLIMIT <= YYCURSOR) YYFILL(1);
108 yych = *YYCURSOR;
109 if (yych <= '@') goto yy15;
110 if (yych <= 'Z') {
111 ++YYCURSOR;
112 goto yy16;
113 }
114 if (yych <= '`') goto yy15;
115 if (yych <= 'z') {
116 ++YYCURSOR;
117 goto yy16;
118 }
119 yy15:
120 YYCURSOR = YYMARKER;
121 if (yyaccept == 0) {
122 goto yy11;
123 } else {
124 goto yy17;
125 }
126 yy16:
127 yyaccept = 1;
128 YYMARKER = YYCURSOR;
129 if (YYLIMIT <= YYCURSOR) YYFILL(1);
130 yych = *YYCURSOR;
131 if (yych == '$') {
132 ++YYCURSOR;
133 goto yy14;
134 }
135 yy17:
136 {
137 printf("Found $ or $\\<x>\n");
138 continue;
139 }
140 }
141
142 }
143 }
144
main(int argc,char ** argv)145 int main(int argc, char **argv)
146 {
147 if (argc > 1)
148 {
149 return scan(argv[1], strlen(argv[1]));
150 }
151 else
152 {
153 fprintf(stderr, "%s <expr>\n", argv[0]);
154 return 1;
155 }
156 }
157 yyaccept_missing_bci_eager_skip.re:45:27: warning: rule in condition 'ST_VALUE' matches empty string [-Wmatch-empty-string]
158