1 /* Generated by re2c */
2 #line 1 "bug1163046.re"
3 // re2c $INPUT -o $OUTPUT
4 #include <iostream>
5 
6 #define YYCTYPE unsigned char
7 #define YYCURSOR cursor
8 #define YYLIMIT cursor
9 #define YYMARKER marker
10 #define YYFILL(n)
11 
scan(const char * text)12 bool scan(const char *text)
13 {
14 	YYCTYPE *start = (YYCTYPE *)text;
15 	YYCTYPE *cursor = (YYCTYPE *)text;
16 	YYCTYPE *marker = (YYCTYPE *)text;
17 next:
18 	YYCTYPE *token = cursor;
19 
20 #line 21 "bug1163046.c"
21 {
22 	YYCTYPE yych;
23 	if ((YYLIMIT - YYCURSOR) < 45) YYFILL(45);
24 	yych = *YYCURSOR;
25 	switch (yych) {
26 	case 0x00:	goto yy2;
27 	case '(':	goto yy6;
28 	default:	goto yy4;
29 	}
30 yy2:
31 	++YYCURSOR;
32 #line 26 "bug1163046.re"
33 	{ return false; }
34 #line 35 "bug1163046.c"
35 yy4:
36 	++YYCURSOR;
37 yy5:
38 #line 24 "bug1163046.re"
39 	{ goto next; }
40 #line 41 "bug1163046.c"
41 yy6:
42 	yych = *(YYMARKER = ++YYCURSOR);
43 	switch (yych) {
44 	case 'T':
45 	case 't':	goto yy7;
46 	default:	goto yy5;
47 	}
48 yy7:
49 	yych = *++YYCURSOR;
50 	switch (yych) {
51 	case 'H':
52 	case 'h':	goto yy9;
53 	default:	goto yy8;
54 	}
55 yy8:
56 	YYCURSOR = YYMARKER;
57 	goto yy5;
58 yy9:
59 	yych = *++YYCURSOR;
60 	switch (yych) {
61 	case 'I':
62 	case 'i':	goto yy10;
63 	default:	goto yy8;
64 	}
65 yy10:
66 	yych = *++YYCURSOR;
67 	switch (yych) {
68 	case 'S':
69 	case 's':	goto yy11;
70 	default:	goto yy8;
71 	}
72 yy11:
73 	yych = *++YYCURSOR;
74 	switch (yych) {
75 	case ' ':	goto yy12;
76 	default:	goto yy8;
77 	}
78 yy12:
79 	yych = *++YYCURSOR;
80 	switch (yych) {
81 	case 'F':
82 	case 'f':	goto yy13;
83 	default:	goto yy8;
84 	}
85 yy13:
86 	yych = *++YYCURSOR;
87 	switch (yych) {
88 	case 'I':
89 	case 'i':	goto yy14;
90 	default:	goto yy8;
91 	}
92 yy14:
93 	yych = *++YYCURSOR;
94 	switch (yych) {
95 	case 'L':
96 	case 'l':	goto yy15;
97 	default:	goto yy8;
98 	}
99 yy15:
100 	yych = *++YYCURSOR;
101 	switch (yych) {
102 	case 'E':
103 	case 'e':	goto yy16;
104 	default:	goto yy8;
105 	}
106 yy16:
107 	yych = *++YYCURSOR;
108 	switch (yych) {
109 	case ' ':	goto yy17;
110 	default:	goto yy8;
111 	}
112 yy17:
113 	yych = *++YYCURSOR;
114 	switch (yych) {
115 	case 'M':
116 	case 'm':	goto yy18;
117 	default:	goto yy8;
118 	}
119 yy18:
120 	yych = *++YYCURSOR;
121 	switch (yych) {
122 	case 'U':
123 	case 'u':	goto yy19;
124 	default:	goto yy8;
125 	}
126 yy19:
127 	yych = *++YYCURSOR;
128 	switch (yych) {
129 	case 'S':
130 	case 's':	goto yy20;
131 	default:	goto yy8;
132 	}
133 yy20:
134 	yych = *++YYCURSOR;
135 	switch (yych) {
136 	case 'T':
137 	case 't':	goto yy21;
138 	default:	goto yy8;
139 	}
140 yy21:
141 	yych = *++YYCURSOR;
142 	switch (yych) {
143 	case ' ':	goto yy22;
144 	default:	goto yy8;
145 	}
146 yy22:
147 	yych = *++YYCURSOR;
148 	switch (yych) {
149 	case 'B':
150 	case 'b':	goto yy23;
151 	default:	goto yy8;
152 	}
153 yy23:
154 	yych = *++YYCURSOR;
155 	switch (yych) {
156 	case 'E':
157 	case 'e':	goto yy24;
158 	default:	goto yy8;
159 	}
160 yy24:
161 	yych = *++YYCURSOR;
162 	switch (yych) {
163 	case ' ':	goto yy25;
164 	default:	goto yy8;
165 	}
166 yy25:
167 	yych = *++YYCURSOR;
168 	switch (yych) {
169 	case 'C':
170 	case 'c':	goto yy26;
171 	default:	goto yy8;
172 	}
173 yy26:
174 	yych = *++YYCURSOR;
175 	switch (yych) {
176 	case 'O':
177 	case 'o':	goto yy27;
178 	default:	goto yy8;
179 	}
180 yy27:
181 	yych = *++YYCURSOR;
182 	switch (yych) {
183 	case 'N':
184 	case 'n':	goto yy28;
185 	default:	goto yy8;
186 	}
187 yy28:
188 	yych = *++YYCURSOR;
189 	switch (yych) {
190 	case 'V':
191 	case 'v':	goto yy29;
192 	default:	goto yy8;
193 	}
194 yy29:
195 	yych = *++YYCURSOR;
196 	switch (yych) {
197 	case 'E':
198 	case 'e':	goto yy30;
199 	default:	goto yy8;
200 	}
201 yy30:
202 	yych = *++YYCURSOR;
203 	switch (yych) {
204 	case 'R':
205 	case 'r':	goto yy31;
206 	default:	goto yy8;
207 	}
208 yy31:
209 	yych = *++YYCURSOR;
210 	switch (yych) {
211 	case 'T':
212 	case 't':	goto yy32;
213 	default:	goto yy8;
214 	}
215 yy32:
216 	yych = *++YYCURSOR;
217 	switch (yych) {
218 	case 'E':
219 	case 'e':	goto yy33;
220 	default:	goto yy8;
221 	}
222 yy33:
223 	yych = *++YYCURSOR;
224 	switch (yych) {
225 	case 'D':
226 	case 'd':	goto yy34;
227 	default:	goto yy8;
228 	}
229 yy34:
230 	yych = *++YYCURSOR;
231 	switch (yych) {
232 	case ' ':	goto yy35;
233 	default:	goto yy8;
234 	}
235 yy35:
236 	yych = *++YYCURSOR;
237 	switch (yych) {
238 	case 'W':
239 	case 'w':	goto yy36;
240 	default:	goto yy8;
241 	}
242 yy36:
243 	yych = *++YYCURSOR;
244 	switch (yych) {
245 	case 'I':
246 	case 'i':	goto yy37;
247 	default:	goto yy8;
248 	}
249 yy37:
250 	yych = *++YYCURSOR;
251 	switch (yych) {
252 	case 'T':
253 	case 't':	goto yy38;
254 	default:	goto yy8;
255 	}
256 yy38:
257 	yych = *++YYCURSOR;
258 	switch (yych) {
259 	case 'H':
260 	case 'h':	goto yy39;
261 	default:	goto yy8;
262 	}
263 yy39:
264 	yych = *++YYCURSOR;
265 	switch (yych) {
266 	case ' ':	goto yy40;
267 	default:	goto yy8;
268 	}
269 yy40:
270 	yych = *++YYCURSOR;
271 	switch (yych) {
272 	case 'B':
273 	case 'b':	goto yy41;
274 	default:	goto yy8;
275 	}
276 yy41:
277 	yych = *++YYCURSOR;
278 	switch (yych) {
279 	case 'I':
280 	case 'i':	goto yy42;
281 	default:	goto yy8;
282 	}
283 yy42:
284 	yych = *++YYCURSOR;
285 	switch (yych) {
286 	case 'N':
287 	case 'n':	goto yy43;
288 	default:	goto yy8;
289 	}
290 yy43:
291 	yych = *++YYCURSOR;
292 	switch (yych) {
293 	case 'H':
294 	case 'h':	goto yy44;
295 	default:	goto yy8;
296 	}
297 yy44:
298 	yych = *++YYCURSOR;
299 	switch (yych) {
300 	case 'E':
301 	case 'e':	goto yy45;
302 	default:	goto yy8;
303 	}
304 yy45:
305 	yych = *++YYCURSOR;
306 	switch (yych) {
307 	case 'X':
308 	case 'x':	goto yy46;
309 	default:	goto yy8;
310 	}
311 yy46:
312 	yych = *++YYCURSOR;
313 	switch (yych) {
314 	case ' ':	goto yy47;
315 	default:	goto yy8;
316 	}
317 yy47:
318 	yych = *++YYCURSOR;
319 	switch (yych) {
320 	case '4':	goto yy48;
321 	default:	goto yy8;
322 	}
323 yy48:
324 	yych = *++YYCURSOR;
325 	switch (yych) {
326 	case '.':	goto yy49;
327 	default:	goto yy8;
328 	}
329 yy49:
330 	yych = *++YYCURSOR;
331 	switch (yych) {
332 	case '0':	goto yy50;
333 	default:	goto yy8;
334 	}
335 yy50:
336 	yych = *++YYCURSOR;
337 	switch (yych) {
338 	case ')':	goto yy51;
339 	default:	goto yy8;
340 	}
341 yy51:
342 	++YYCURSOR;
343 #line 19 "bug1163046.re"
344 	{
345 		if (token == start || *(token - 1) == '\n')
346 		return true; else goto next;
347 	}
348 #line 349 "bug1163046.c"
349 }
350 #line 27 "bug1163046.re"
351 
352 	return false;
353 }
354 
355 #define do_scan(str, expect) \
356 	res = scan(str) == expect ? 0 : 1; \
357 	std::cerr << str << "\t-\t" << (res ? "fail" : "ok") << std::endl; \
358 	result += res
359 
360 #line 361 "bug1163046.c"
361 #define YYMAXFILL 45
362 #line 36 "bug1163046.re"
363 
364 
main(int,void **)365 int main(int,void**)
366 {
367 	int res, result = 0;
368 	do_scan("(This file must be converted with BinHex 4.0)", 1);
369 	do_scan("x(This file must be converted with BinHex 4.0)", 0);
370 	do_scan("(This file must be converted with BinHex 4.0)x", 1);
371 	do_scan("x(This file must be converted with BinHex 4.0)x", 0);
372 
373 	return result;
374 }
375