Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 801 lines (775 sloc) 30.795 kb
aee8f38 @nddrylliog Initial commit
authored
1 /* A recursive-descent parser generated by peg 0.1.0 */
2
3 #include <stdio.h>
4 #include <stdlib.h>
5 #include <string.h>
6 #define YYRULECOUNT 32
7 #ifndef YY_VARIABLE
8 #define YY_VARIABLE(T) static T
9 #endif
10 #ifndef YY_LOCAL
11 #define YY_LOCAL(T) static T
12 #endif
13 #ifndef YY_ACTION
14 #define YY_ACTION(T) static T
15 #endif
16 #ifndef YY_RULE
17 #define YY_RULE(T) static T
18 #endif
19 #ifndef YY_PARSE
20 #define YY_PARSE(T) T
21 #endif
22 #ifndef YYPARSE
23 #define YYPARSE yyparse
24 #endif
25 #ifndef YYPARSEFROM
26 #define YYPARSEFROM yyparsefrom
27 #endif
28 #ifndef YY_INPUT
29 #define YY_INPUT(buf, result, max_size) \
30 { \
31 int yyc= getchar(); \
32 result= (EOF == yyc) ? 0 : (*(buf)= yyc, 1); \
33 yyprintf((stderr, "<%c>", yyc)); \
34 }
35 #endif
36 #ifndef YY_BEGIN
37 #define YY_BEGIN ( yybegin= yypos, 1)
38 #endif
39 #ifndef YY_END
40 #define YY_END ( yyend= yypos, 1)
41 #endif
42 #ifdef YY_DEBUG
43 # define yyprintf(args) fprintf args
44 #else
45 # define yyprintf(args)
46 #endif
47 #ifndef YYSTYPE
48 #define YYSTYPE int
49 #endif
50
51 #ifndef YY_PART
52
53 typedef void (*yyaction)(char *yytext, int yyleng);
54 typedef struct _yythunk { int begin, end; yyaction action; struct _yythunk *next; } yythunk;
55
56 YY_VARIABLE(char * ) yybuf= 0;
57 YY_VARIABLE(int ) yybuflen= 0;
58 YY_VARIABLE(int ) yypos= 0;
59 YY_VARIABLE(int ) yylimit= 0;
60 YY_VARIABLE(char * ) yytext= 0;
61 YY_VARIABLE(int ) yytextlen= 0;
62 YY_VARIABLE(int ) yybegin= 0;
63 YY_VARIABLE(int ) yyend= 0;
64 YY_VARIABLE(int ) yytextmax= 0;
65 YY_VARIABLE(yythunk *) yythunks= 0;
66 YY_VARIABLE(int ) yythunkslen= 0;
67 YY_VARIABLE(int ) yythunkpos= 0;
68 YY_VARIABLE(YYSTYPE ) yy;
69 YY_VARIABLE(YYSTYPE *) yyval= 0;
70 YY_VARIABLE(YYSTYPE *) yyvals= 0;
71 YY_VARIABLE(int ) yyvalslen= 0;
72
73 YY_LOCAL(int) yyrefill(void)
74 {
75 int yyn;
76 if (yybuflen - yypos < 512)
77 {
78 yybuflen *= 2;
79 yybuf= realloc(yybuf, yybuflen);
80 }
81 YY_INPUT((yybuf + yypos), yyn, (yybuflen - yypos));
82 if (!yyn) return 0;
83 yylimit += yyn;
84 return 1;
85 }
86
87 YY_LOCAL(int) yymatchDot(void)
88 {
89 if (yypos >= yylimit && !yyrefill()) return 0;
90 ++yypos;
91 return 1;
92 }
93
94 YY_LOCAL(int) yymatchChar(int c)
95 {
96 if (yypos >= yylimit && !yyrefill()) return 0;
97 if (yybuf[yypos] == c)
98 {
99 ++yypos;
100 yyprintf((stderr, " ok yymatchChar(%c) @ %s\n", c, yybuf+yypos));
101 return 1;
102 }
103 yyprintf((stderr, " fail yymatchChar(%c) @ %s\n", c, yybuf+yypos));
104 return 0;
105 }
106
107 YY_LOCAL(int) yymatchString(char *s)
108 {
109 int yysav= yypos;
110 while (*s)
111 {
112 if (yypos >= yylimit && !yyrefill()) return 0;
113 if (yybuf[yypos] != *s)
114 {
115 yypos= yysav;
116 return 0;
117 }
118 ++s;
119 ++yypos;
120 }
121 return 1;
122 }
123
124 YY_LOCAL(int) yymatchClass(unsigned char *bits)
125 {
126 int c;
127 if (yypos >= yylimit && !yyrefill()) return 0;
128 c= yybuf[yypos];
129 if (bits[c >> 3] & (1 << (c & 7)))
130 {
131 ++yypos;
132 yyprintf((stderr, " ok yymatchClass @ %s\n", yybuf+yypos));
133 return 1;
134 }
135 yyprintf((stderr, " fail yymatchClass @ %s\n", yybuf+yypos));
136 return 0;
137 }
138
139 YY_LOCAL(void) yyDo(yyaction action, int begin, int end)
140 {
141 if (yythunkpos >= yythunkslen)
142 {
143 yythunkslen *= 2;
144 yythunks= realloc(yythunks, sizeof(yythunk) * yythunkslen);
145 }
146 yythunks[yythunkpos].begin= begin;
147 yythunks[yythunkpos].end= end;
148 yythunks[yythunkpos].action= action;
149 ++yythunkpos;
150 }
151
152 YY_LOCAL(int) yyText(int begin, int end)
153 {
154 int yyleng= end - begin;
155 if (yyleng <= 0)
156 yyleng= 0;
157 else
158 {
159 if (yytextlen < (yyleng - 1))
160 {
161 yytextlen *= 2;
162 yytext= realloc(yytext, yytextlen);
163 }
164 memcpy(yytext, yybuf + begin, yyleng);
165 }
166 yytext[yyleng]= '\0';
167 return yyleng;
168 }
169
170 YY_LOCAL(void) yyDone(void)
171 {
172 int pos;
173 for (pos= 0; pos < yythunkpos; ++pos)
174 {
175 yythunk *thunk= &yythunks[pos];
176 int yyleng= thunk->end ? yyText(thunk->begin, thunk->end) : thunk->begin;
177 yyprintf((stderr, "DO [%d] %p %s\n", pos, thunk->action, yytext));
178 thunk->action(yytext, yyleng);
179 }
180 yythunkpos= 0;
181 }
182
183 YY_LOCAL(void) yyCommit()
184 {
185 if ((yylimit -= yypos))
186 {
187 memmove(yybuf, yybuf + yypos, yylimit);
188 }
189 yybegin -= yypos;
190 yyend -= yypos;
191 yypos= yythunkpos= 0;
192 }
193
194 YY_LOCAL(int) yyAccept(int tp0)
195 {
196 if (tp0)
197 {
198 fprintf(stderr, "accept denied at %d\n", tp0);
199 return 0;
200 }
201 else
202 {
203 yyDone();
204 yyCommit();
205 }
206 return 1;
207 }
208
209 YY_LOCAL(void) yyPush(char *text, int count) { yyval += count; }
210 YY_LOCAL(void) yyPop(char *text, int count) { yyval -= count; }
211 YY_LOCAL(void) yySet(char *text, int count) { yyval[count]= yy; }
212
213 #endif /* YY_PART */
214
215 #define YYACCEPT yyAccept(yythunkpos0)
216
217 YY_RULE(int) yy_EndOfLine(); /* 32 */
218 YY_RULE(int) yy_Comment(); /* 31 */
219 YY_RULE(int) yy_Space(); /* 30 */
220 YY_RULE(int) yy_Range(); /* 29 */
221 YY_RULE(int) yy_Char(); /* 28 */
222 YY_RULE(int) yy_IdentCont(); /* 27 */
223 YY_RULE(int) yy_IdentStart(); /* 26 */
224 YY_RULE(int) yy_END(); /* 25 */
225 YY_RULE(int) yy_BEGIN(); /* 24 */
226 YY_RULE(int) yy_DOT(); /* 23 */
227 YY_RULE(int) yy_Class(); /* 22 */
228 YY_RULE(int) yy_Literal(); /* 21 */
229 YY_RULE(int) yy_CLOSE(); /* 20 */
230 YY_RULE(int) yy_OPEN(); /* 19 */
231 YY_RULE(int) yy_PLUS(); /* 18 */
232 YY_RULE(int) yy_STAR(); /* 17 */
233 YY_RULE(int) yy_QUESTION(); /* 16 */
234 YY_RULE(int) yy_Primary(); /* 15 */
235 YY_RULE(int) yy_NOT(); /* 14 */
236 YY_RULE(int) yy_Suffix(); /* 13 */
237 YY_RULE(int) yy_Action(); /* 12 */
238 YY_RULE(int) yy_AND(); /* 11 */
239 YY_RULE(int) yy_Prefix(); /* 10 */
240 YY_RULE(int) yy_SLASH(); /* 9 */
241 YY_RULE(int) yy_Sequence(); /* 8 */
242 YY_RULE(int) yy_Expression(); /* 7 */
243 YY_RULE(int) yy_LEFTARROW(); /* 6 */
244 YY_RULE(int) yy_Identifier(); /* 5 */
245 YY_RULE(int) yy_EndOfFile(); /* 4 */
246 YY_RULE(int) yy_Definition(); /* 3 */
247 YY_RULE(int) yy_Spacing(); /* 2 */
248 YY_RULE(int) yy_Grammar(); /* 1 */
249
250 YY_ACTION(void) yy_7_Primary(char *yytext, int yyleng)
251 {
252 yyprintf((stderr, "do yy_7_Primary\n"));
253 push(makePredicate("YY_END")); ;
254 }
255 YY_ACTION(void) yy_6_Primary(char *yytext, int yyleng)
256 {
257 yyprintf((stderr, "do yy_6_Primary\n"));
258 push(makePredicate("YY_BEGIN")); ;
259 }
260 YY_ACTION(void) yy_5_Primary(char *yytext, int yyleng)
261 {
262 yyprintf((stderr, "do yy_5_Primary\n"));
263 push(makeAction(yytext)); ;
264 }
265 YY_ACTION(void) yy_4_Primary(char *yytext, int yyleng)
266 {
267 yyprintf((stderr, "do yy_4_Primary\n"));
268 push(makeDot()); ;
269 }
270 YY_ACTION(void) yy_3_Primary(char *yytext, int yyleng)
271 {
272 yyprintf((stderr, "do yy_3_Primary\n"));
273 push(makeClass(yytext)); ;
274 }
275 YY_ACTION(void) yy_2_Primary(char *yytext, int yyleng)
276 {
277 yyprintf((stderr, "do yy_2_Primary\n"));
278 push(makeString(yytext)); ;
279 }
280 YY_ACTION(void) yy_1_Primary(char *yytext, int yyleng)
281 {
282 yyprintf((stderr, "do yy_1_Primary\n"));
283 push(makeName(findRule(yytext))); ;
284 }
285 YY_ACTION(void) yy_3_Suffix(char *yytext, int yyleng)
286 {
287 yyprintf((stderr, "do yy_3_Suffix\n"));
288 push(makePlus (pop())); ;
289 }
290 YY_ACTION(void) yy_2_Suffix(char *yytext, int yyleng)
291 {
292 yyprintf((stderr, "do yy_2_Suffix\n"));
293 push(makeStar (pop())); ;
294 }
295 YY_ACTION(void) yy_1_Suffix(char *yytext, int yyleng)
296 {
297 yyprintf((stderr, "do yy_1_Suffix\n"));
298 push(makeQuery(pop())); ;
299 }
300 YY_ACTION(void) yy_3_Prefix(char *yytext, int yyleng)
301 {
302 yyprintf((stderr, "do yy_3_Prefix\n"));
303 push(makePeekNot(pop())); ;
304 }
305 YY_ACTION(void) yy_2_Prefix(char *yytext, int yyleng)
306 {
307 yyprintf((stderr, "do yy_2_Prefix\n"));
308 push(makePeekFor(pop())); ;
309 }
310 YY_ACTION(void) yy_1_Prefix(char *yytext, int yyleng)
311 {
312 yyprintf((stderr, "do yy_1_Prefix\n"));
313 push(makePredicate(yytext)); ;
314 }
315 YY_ACTION(void) yy_2_Sequence(char *yytext, int yyleng)
316 {
317 yyprintf((stderr, "do yy_2_Sequence\n"));
318 push(makePredicate("1")); ;
319 }
320 YY_ACTION(void) yy_1_Sequence(char *yytext, int yyleng)
321 {
322 yyprintf((stderr, "do yy_1_Sequence\n"));
323 Node *f= pop(); push(Sequence_append(pop(), f)); ;
324 }
325 YY_ACTION(void) yy_1_Expression(char *yytext, int yyleng)
326 {
327 yyprintf((stderr, "do yy_1_Expression\n"));
328 Node *f= pop(); push(Alternate_append(pop(), f)); ;
329 }
330 YY_ACTION(void) yy_2_Definition(char *yytext, int yyleng)
331 {
332 yyprintf((stderr, "do yy_2_Definition\n"));
333 Node *e= pop(); Rule_setExpression(pop(), e); ;
334 }
335 YY_ACTION(void) yy_1_Definition(char *yytext, int yyleng)
336 {
337 yyprintf((stderr, "do yy_1_Definition\n"));
338 if (push(beginRule(findRule(yytext)))->rule.expression) fprintf(stderr, "rule '%s' redefined\n", yytext); ;
339 }
340
341 YY_RULE(int) yy_EndOfLine()
342 { int yypos0= yypos, yythunkpos0= yythunkpos;
343 yyprintf((stderr, "%s\n", "EndOfLine"));
344 { int yypos2= yypos, yythunkpos2= yythunkpos; if (!yymatchString("\r\n")) goto l3; goto l2;
345 l3:; yypos= yypos2; yythunkpos= yythunkpos2; if (!yymatchChar('\n')) goto l4; goto l2;
346 l4:; yypos= yypos2; yythunkpos= yythunkpos2; if (!yymatchChar('\r')) goto l1;
347 }
348 l2:;
349 yyprintf((stderr, " ok %s @ %s\n", "EndOfLine", yybuf+yypos));
350 return 1;
351 l1:; yypos= yypos0; yythunkpos= yythunkpos0;
352 yyprintf((stderr, " fail %s @ %s\n", "EndOfLine", yybuf+yypos));
353 return 0;
354 }
355 YY_RULE(int) yy_Comment()
356 { int yypos0= yypos, yythunkpos0= yythunkpos;
357 yyprintf((stderr, "%s\n", "Comment")); if (!yymatchChar('#')) goto l5;
358 l6:;
359 { int yypos7= yypos, yythunkpos7= yythunkpos;
360 { int yypos8= yypos, yythunkpos8= yythunkpos; if (!yy_EndOfLine()) goto l8; goto l7;
361 l8:; yypos= yypos8; yythunkpos= yythunkpos8;
362 } if (!yymatchDot()) goto l7; goto l6;
363 l7:; yypos= yypos7; yythunkpos= yythunkpos7;
364 } if (!yy_EndOfLine()) goto l5;
365 yyprintf((stderr, " ok %s @ %s\n", "Comment", yybuf+yypos));
366 return 1;
367 l5:; yypos= yypos0; yythunkpos= yythunkpos0;
368 yyprintf((stderr, " fail %s @ %s\n", "Comment", yybuf+yypos));
369 return 0;
370 }
371 YY_RULE(int) yy_Space()
372 { int yypos0= yypos, yythunkpos0= yythunkpos;
373 yyprintf((stderr, "%s\n", "Space"));
374 { int yypos10= yypos, yythunkpos10= yythunkpos; if (!yymatchChar(' ')) goto l11; goto l10;
375 l11:; yypos= yypos10; yythunkpos= yythunkpos10; if (!yymatchChar('\t')) goto l12; goto l10;
376 l12:; yypos= yypos10; yythunkpos= yythunkpos10; if (!yy_EndOfLine()) goto l9;
377 }
378 l10:;
379 yyprintf((stderr, " ok %s @ %s\n", "Space", yybuf+yypos));
380 return 1;
381 l9:; yypos= yypos0; yythunkpos= yythunkpos0;
382 yyprintf((stderr, " fail %s @ %s\n", "Space", yybuf+yypos));
383 return 0;
384 }
385 YY_RULE(int) yy_Range()
386 { int yypos0= yypos, yythunkpos0= yythunkpos;
387 yyprintf((stderr, "%s\n", "Range"));
388 { int yypos14= yypos, yythunkpos14= yythunkpos; if (!yy_Char()) goto l15; if (!yymatchChar('-')) goto l15; if (!yy_Char()) goto l15; goto l14;
389 l15:; yypos= yypos14; yythunkpos= yythunkpos14; if (!yy_Char()) goto l13;
390 }
391 l14:;
392 yyprintf((stderr, " ok %s @ %s\n", "Range", yybuf+yypos));
393 return 1;
394 l13:; yypos= yypos0; yythunkpos= yythunkpos0;
395 yyprintf((stderr, " fail %s @ %s\n", "Range", yybuf+yypos));
396 return 0;
397 }
398 YY_RULE(int) yy_Char()
399 { int yypos0= yypos, yythunkpos0= yythunkpos;
400 yyprintf((stderr, "%s\n", "Char"));
401 { int yypos17= yypos, yythunkpos17= yythunkpos; if (!yymatchChar('\\')) goto l18; if (!yymatchClass((unsigned char *)"\000\000\000\000\204\000\000\000\000\000\000\070\146\100\124\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l18; goto l17;
402 l18:; yypos= yypos17; yythunkpos= yythunkpos17; if (!yymatchChar('\\')) goto l19; if (!yymatchClass((unsigned char *)"\000\000\000\000\000\000\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l19; if (!yymatchClass((unsigned char *)"\000\000\000\000\000\000\377\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l19; if (!yymatchClass((unsigned char *)"\000\000\000\000\000\000\377\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l19; goto l17;
403 l19:; yypos= yypos17; yythunkpos= yythunkpos17; if (!yymatchChar('\\')) goto l20; if (!yymatchClass((unsigned char *)"\000\000\000\000\000\000\377\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l20;
404 { int yypos21= yypos, yythunkpos21= yythunkpos; if (!yymatchClass((unsigned char *)"\000\000\000\000\000\000\377\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l21; goto l22;
405 l21:; yypos= yypos21; yythunkpos= yythunkpos21;
406 }
407 l22:; goto l17;
408 l20:; yypos= yypos17; yythunkpos= yythunkpos17; if (!yymatchChar('\\')) goto l23; if (!yymatchChar('-')) goto l23; goto l17;
409 l23:; yypos= yypos17; yythunkpos= yythunkpos17;
410 { int yypos24= yypos, yythunkpos24= yythunkpos; if (!yymatchChar('\\')) goto l24; goto l16;
411 l24:; yypos= yypos24; yythunkpos= yythunkpos24;
412 } if (!yymatchDot()) goto l16;
413 }
414 l17:;
415 yyprintf((stderr, " ok %s @ %s\n", "Char", yybuf+yypos));
416 return 1;
417 l16:; yypos= yypos0; yythunkpos= yythunkpos0;
418 yyprintf((stderr, " fail %s @ %s\n", "Char", yybuf+yypos));
419 return 0;
420 }
421 YY_RULE(int) yy_IdentCont()
422 { int yypos0= yypos, yythunkpos0= yythunkpos;
423 yyprintf((stderr, "%s\n", "IdentCont"));
424 { int yypos26= yypos, yythunkpos26= yythunkpos; if (!yy_IdentStart()) goto l27; goto l26;
425 l27:; yypos= yypos26; yythunkpos= yythunkpos26; if (!yymatchClass((unsigned char *)"\000\000\000\000\000\000\377\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l25;
426 }
427 l26:;
428 yyprintf((stderr, " ok %s @ %s\n", "IdentCont", yybuf+yypos));
429 return 1;
430 l25:; yypos= yypos0; yythunkpos= yythunkpos0;
431 yyprintf((stderr, " fail %s @ %s\n", "IdentCont", yybuf+yypos));
432 return 0;
433 }
434 YY_RULE(int) yy_IdentStart()
435 { int yypos0= yypos, yythunkpos0= yythunkpos;
436 yyprintf((stderr, "%s\n", "IdentStart")); if (!yymatchClass((unsigned char *)"\000\000\000\000\000\000\000\000\376\377\377\207\376\377\377\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l28;
437 yyprintf((stderr, " ok %s @ %s\n", "IdentStart", yybuf+yypos));
438 return 1;
439 l28:; yypos= yypos0; yythunkpos= yythunkpos0;
440 yyprintf((stderr, " fail %s @ %s\n", "IdentStart", yybuf+yypos));
441 return 0;
442 }
443 YY_RULE(int) yy_END()
444 { int yypos0= yypos, yythunkpos0= yythunkpos;
445 yyprintf((stderr, "%s\n", "END")); if (!yymatchChar('>')) goto l29; if (!yy_Spacing()) goto l29;
446 yyprintf((stderr, " ok %s @ %s\n", "END", yybuf+yypos));
447 return 1;
448 l29:; yypos= yypos0; yythunkpos= yythunkpos0;
449 yyprintf((stderr, " fail %s @ %s\n", "END", yybuf+yypos));
450 return 0;
451 }
452 YY_RULE(int) yy_BEGIN()
453 { int yypos0= yypos, yythunkpos0= yythunkpos;
454 yyprintf((stderr, "%s\n", "BEGIN")); if (!yymatchChar('<')) goto l30; if (!yy_Spacing()) goto l30;
455 yyprintf((stderr, " ok %s @ %s\n", "BEGIN", yybuf+yypos));
456 return 1;
457 l30:; yypos= yypos0; yythunkpos= yythunkpos0;
458 yyprintf((stderr, " fail %s @ %s\n", "BEGIN", yybuf+yypos));
459 return 0;
460 }
461 YY_RULE(int) yy_DOT()
462 { int yypos0= yypos, yythunkpos0= yythunkpos;
463 yyprintf((stderr, "%s\n", "DOT")); if (!yymatchChar('.')) goto l31; if (!yy_Spacing()) goto l31;
464 yyprintf((stderr, " ok %s @ %s\n", "DOT", yybuf+yypos));
465 return 1;
466 l31:; yypos= yypos0; yythunkpos= yythunkpos0;
467 yyprintf((stderr, " fail %s @ %s\n", "DOT", yybuf+yypos));
468 return 0;
469 }
470 YY_RULE(int) yy_Class()
471 { int yypos0= yypos, yythunkpos0= yythunkpos;
472 yyprintf((stderr, "%s\n", "Class")); if (!yymatchChar('[')) goto l32; yyText(yybegin, yyend); if (!(YY_BEGIN)) goto l32;
473 l33:;
474 { int yypos34= yypos, yythunkpos34= yythunkpos;
475 { int yypos35= yypos, yythunkpos35= yythunkpos; if (!yymatchChar(']')) goto l35; goto l34;
476 l35:; yypos= yypos35; yythunkpos= yythunkpos35;
477 } if (!yy_Range()) goto l34; goto l33;
478 l34:; yypos= yypos34; yythunkpos= yythunkpos34;
479 } yyText(yybegin, yyend); if (!(YY_END)) goto l32; if (!yymatchChar(']')) goto l32; if (!yy_Spacing()) goto l32;
480 yyprintf((stderr, " ok %s @ %s\n", "Class", yybuf+yypos));
481 return 1;
482 l32:; yypos= yypos0; yythunkpos= yythunkpos0;
483 yyprintf((stderr, " fail %s @ %s\n", "Class", yybuf+yypos));
484 return 0;
485 }
486 YY_RULE(int) yy_Literal()
487 { int yypos0= yypos, yythunkpos0= yythunkpos;
488 yyprintf((stderr, "%s\n", "Literal"));
489 { int yypos37= yypos, yythunkpos37= yythunkpos; if (!yymatchClass((unsigned char *)"\000\000\000\000\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l38; yyText(yybegin, yyend); if (!(YY_BEGIN)) goto l38;
490 l39:;
491 { int yypos40= yypos, yythunkpos40= yythunkpos;
492 { int yypos41= yypos, yythunkpos41= yythunkpos; if (!yymatchClass((unsigned char *)"\000\000\000\000\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l41; goto l40;
493 l41:; yypos= yypos41; yythunkpos= yythunkpos41;
494 } if (!yy_Char()) goto l40; goto l39;
495 l40:; yypos= yypos40; yythunkpos= yythunkpos40;
496 } yyText(yybegin, yyend); if (!(YY_END)) goto l38; if (!yymatchClass((unsigned char *)"\000\000\000\000\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l38; if (!yy_Spacing()) goto l38; goto l37;
497 l38:; yypos= yypos37; yythunkpos= yythunkpos37; if (!yymatchClass((unsigned char *)"\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l36; yyText(yybegin, yyend); if (!(YY_BEGIN)) goto l36;
498 l42:;
499 { int yypos43= yypos, yythunkpos43= yythunkpos;
500 { int yypos44= yypos, yythunkpos44= yythunkpos; if (!yymatchClass((unsigned char *)"\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l44; goto l43;
501 l44:; yypos= yypos44; yythunkpos= yythunkpos44;
502 } if (!yy_Char()) goto l43; goto l42;
503 l43:; yypos= yypos43; yythunkpos= yythunkpos43;
504 } yyText(yybegin, yyend); if (!(YY_END)) goto l36; if (!yymatchClass((unsigned char *)"\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l36; if (!yy_Spacing()) goto l36;
505 }
506 l37:;
507 yyprintf((stderr, " ok %s @ %s\n", "Literal", yybuf+yypos));
508 return 1;
509 l36:; yypos= yypos0; yythunkpos= yythunkpos0;
510 yyprintf((stderr, " fail %s @ %s\n", "Literal", yybuf+yypos));
511 return 0;
512 }
513 YY_RULE(int) yy_CLOSE()
514 { int yypos0= yypos, yythunkpos0= yythunkpos;
515 yyprintf((stderr, "%s\n", "CLOSE")); if (!yymatchChar(')')) goto l45; if (!yy_Spacing()) goto l45;
516 yyprintf((stderr, " ok %s @ %s\n", "CLOSE", yybuf+yypos));
517 return 1;
518 l45:; yypos= yypos0; yythunkpos= yythunkpos0;
519 yyprintf((stderr, " fail %s @ %s\n", "CLOSE", yybuf+yypos));
520 return 0;
521 }
522 YY_RULE(int) yy_OPEN()
523 { int yypos0= yypos, yythunkpos0= yythunkpos;
524 yyprintf((stderr, "%s\n", "OPEN")); if (!yymatchChar('(')) goto l46; if (!yy_Spacing()) goto l46;
525 yyprintf((stderr, " ok %s @ %s\n", "OPEN", yybuf+yypos));
526 return 1;
527 l46:; yypos= yypos0; yythunkpos= yythunkpos0;
528 yyprintf((stderr, " fail %s @ %s\n", "OPEN", yybuf+yypos));
529 return 0;
530 }
531 YY_RULE(int) yy_PLUS()
532 { int yypos0= yypos, yythunkpos0= yythunkpos;
533 yyprintf((stderr, "%s\n", "PLUS")); if (!yymatchChar('+')) goto l47; if (!yy_Spacing()) goto l47;
534 yyprintf((stderr, " ok %s @ %s\n", "PLUS", yybuf+yypos));
535 return 1;
536 l47:; yypos= yypos0; yythunkpos= yythunkpos0;
537 yyprintf((stderr, " fail %s @ %s\n", "PLUS", yybuf+yypos));
538 return 0;
539 }
540 YY_RULE(int) yy_STAR()
541 { int yypos0= yypos, yythunkpos0= yythunkpos;
542 yyprintf((stderr, "%s\n", "STAR")); if (!yymatchChar('*')) goto l48; if (!yy_Spacing()) goto l48;
543 yyprintf((stderr, " ok %s @ %s\n", "STAR", yybuf+yypos));
544 return 1;
545 l48:; yypos= yypos0; yythunkpos= yythunkpos0;
546 yyprintf((stderr, " fail %s @ %s\n", "STAR", yybuf+yypos));
547 return 0;
548 }
549 YY_RULE(int) yy_QUESTION()
550 { int yypos0= yypos, yythunkpos0= yythunkpos;
551 yyprintf((stderr, "%s\n", "QUESTION")); if (!yymatchChar('?')) goto l49; if (!yy_Spacing()) goto l49;
552 yyprintf((stderr, " ok %s @ %s\n", "QUESTION", yybuf+yypos));
553 return 1;
554 l49:; yypos= yypos0; yythunkpos= yythunkpos0;
555 yyprintf((stderr, " fail %s @ %s\n", "QUESTION", yybuf+yypos));
556 return 0;
557 }
558 YY_RULE(int) yy_Primary()
559 { int yypos0= yypos, yythunkpos0= yythunkpos;
560 yyprintf((stderr, "%s\n", "Primary"));
561 { int yypos51= yypos, yythunkpos51= yythunkpos; if (!yy_Identifier()) goto l52;
562 { int yypos53= yypos, yythunkpos53= yythunkpos; if (!yy_LEFTARROW()) goto l53; goto l52;
563 l53:; yypos= yypos53; yythunkpos= yythunkpos53;
564 } yyDo(yy_1_Primary, yybegin, yyend); goto l51;
565 l52:; yypos= yypos51; yythunkpos= yythunkpos51; if (!yy_OPEN()) goto l54; if (!yy_Expression()) goto l54; if (!yy_CLOSE()) goto l54; goto l51;
566 l54:; yypos= yypos51; yythunkpos= yythunkpos51; if (!yy_Literal()) goto l55; yyDo(yy_2_Primary, yybegin, yyend); goto l51;
567 l55:; yypos= yypos51; yythunkpos= yythunkpos51; if (!yy_Class()) goto l56; yyDo(yy_3_Primary, yybegin, yyend); goto l51;
568 l56:; yypos= yypos51; yythunkpos= yythunkpos51; if (!yy_DOT()) goto l57; yyDo(yy_4_Primary, yybegin, yyend); goto l51;
569 l57:; yypos= yypos51; yythunkpos= yythunkpos51; if (!yy_Action()) goto l58; yyDo(yy_5_Primary, yybegin, yyend); goto l51;
570 l58:; yypos= yypos51; yythunkpos= yythunkpos51; if (!yy_BEGIN()) goto l59; yyDo(yy_6_Primary, yybegin, yyend); goto l51;
571 l59:; yypos= yypos51; yythunkpos= yythunkpos51; if (!yy_END()) goto l50; yyDo(yy_7_Primary, yybegin, yyend);
572 }
573 l51:;
574 yyprintf((stderr, " ok %s @ %s\n", "Primary", yybuf+yypos));
575 return 1;
576 l50:; yypos= yypos0; yythunkpos= yythunkpos0;
577 yyprintf((stderr, " fail %s @ %s\n", "Primary", yybuf+yypos));
578 return 0;
579 }
580 YY_RULE(int) yy_NOT()
581 { int yypos0= yypos, yythunkpos0= yythunkpos;
582 yyprintf((stderr, "%s\n", "NOT")); if (!yymatchChar('!')) goto l60; if (!yy_Spacing()) goto l60;
583 yyprintf((stderr, " ok %s @ %s\n", "NOT", yybuf+yypos));
584 return 1;
585 l60:; yypos= yypos0; yythunkpos= yythunkpos0;
586 yyprintf((stderr, " fail %s @ %s\n", "NOT", yybuf+yypos));
587 return 0;
588 }
589 YY_RULE(int) yy_Suffix()
590 { int yypos0= yypos, yythunkpos0= yythunkpos;
591 yyprintf((stderr, "%s\n", "Suffix")); if (!yy_Primary()) goto l61;
592 { int yypos62= yypos, yythunkpos62= yythunkpos;
593 { int yypos64= yypos, yythunkpos64= yythunkpos; if (!yy_QUESTION()) goto l65; yyDo(yy_1_Suffix, yybegin, yyend); goto l64;
594 l65:; yypos= yypos64; yythunkpos= yythunkpos64; if (!yy_STAR()) goto l66; yyDo(yy_2_Suffix, yybegin, yyend); goto l64;
595 l66:; yypos= yypos64; yythunkpos= yythunkpos64; if (!yy_PLUS()) goto l62; yyDo(yy_3_Suffix, yybegin, yyend);
596 }
597 l64:; goto l63;
598 l62:; yypos= yypos62; yythunkpos= yythunkpos62;
599 }
600 l63:;
601 yyprintf((stderr, " ok %s @ %s\n", "Suffix", yybuf+yypos));
602 return 1;
603 l61:; yypos= yypos0; yythunkpos= yythunkpos0;
604 yyprintf((stderr, " fail %s @ %s\n", "Suffix", yybuf+yypos));
605 return 0;
606 }
607 YY_RULE(int) yy_Action()
608 { int yypos0= yypos, yythunkpos0= yythunkpos;
609 yyprintf((stderr, "%s\n", "Action")); if (!yymatchChar('{')) goto l67; yyText(yybegin, yyend); if (!(YY_BEGIN)) goto l67;
610 l68:;
611 { int yypos69= yypos, yythunkpos69= yythunkpos; if (!yymatchClass((unsigned char *)"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\337\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377")) goto l69; goto l68;
612 l69:; yypos= yypos69; yythunkpos= yythunkpos69;
613 } yyText(yybegin, yyend); if (!(YY_END)) goto l67; if (!yymatchChar('}')) goto l67; if (!yy_Spacing()) goto l67;
614 yyprintf((stderr, " ok %s @ %s\n", "Action", yybuf+yypos));
615 return 1;
616 l67:; yypos= yypos0; yythunkpos= yythunkpos0;
617 yyprintf((stderr, " fail %s @ %s\n", "Action", yybuf+yypos));
618 return 0;
619 }
620 YY_RULE(int) yy_AND()
621 { int yypos0= yypos, yythunkpos0= yythunkpos;
622 yyprintf((stderr, "%s\n", "AND")); if (!yymatchChar('&')) goto l70; if (!yy_Spacing()) goto l70;
623 yyprintf((stderr, " ok %s @ %s\n", "AND", yybuf+yypos));
624 return 1;
625 l70:; yypos= yypos0; yythunkpos= yythunkpos0;
626 yyprintf((stderr, " fail %s @ %s\n", "AND", yybuf+yypos));
627 return 0;
628 }
629 YY_RULE(int) yy_Prefix()
630 { int yypos0= yypos, yythunkpos0= yythunkpos;
631 yyprintf((stderr, "%s\n", "Prefix"));
632 { int yypos72= yypos, yythunkpos72= yythunkpos; if (!yy_AND()) goto l73; if (!yy_Action()) goto l73; yyDo(yy_1_Prefix, yybegin, yyend); goto l72;
633 l73:; yypos= yypos72; yythunkpos= yythunkpos72; if (!yy_AND()) goto l74; if (!yy_Suffix()) goto l74; yyDo(yy_2_Prefix, yybegin, yyend); goto l72;
634 l74:; yypos= yypos72; yythunkpos= yythunkpos72; if (!yy_NOT()) goto l75; if (!yy_Suffix()) goto l75; yyDo(yy_3_Prefix, yybegin, yyend); goto l72;
635 l75:; yypos= yypos72; yythunkpos= yythunkpos72; if (!yy_Suffix()) goto l71;
636 }
637 l72:;
638 yyprintf((stderr, " ok %s @ %s\n", "Prefix", yybuf+yypos));
639 return 1;
640 l71:; yypos= yypos0; yythunkpos= yythunkpos0;
641 yyprintf((stderr, " fail %s @ %s\n", "Prefix", yybuf+yypos));
642 return 0;
643 }
644 YY_RULE(int) yy_SLASH()
645 { int yypos0= yypos, yythunkpos0= yythunkpos;
646 yyprintf((stderr, "%s\n", "SLASH")); if (!yymatchChar('/')) goto l76; if (!yy_Spacing()) goto l76;
647 yyprintf((stderr, " ok %s @ %s\n", "SLASH", yybuf+yypos));
648 return 1;
649 l76:; yypos= yypos0; yythunkpos= yythunkpos0;
650 yyprintf((stderr, " fail %s @ %s\n", "SLASH", yybuf+yypos));
651 return 0;
652 }
653 YY_RULE(int) yy_Sequence()
654 { int yypos0= yypos, yythunkpos0= yythunkpos;
655 yyprintf((stderr, "%s\n", "Sequence"));
656 { int yypos78= yypos, yythunkpos78= yythunkpos; if (!yy_Prefix()) goto l79;
657 l80:;
658 { int yypos81= yypos, yythunkpos81= yythunkpos; if (!yy_Prefix()) goto l81; yyDo(yy_1_Sequence, yybegin, yyend); goto l80;
659 l81:; yypos= yypos81; yythunkpos= yythunkpos81;
660 } goto l78;
661 l79:; yypos= yypos78; yythunkpos= yythunkpos78; yyDo(yy_2_Sequence, yybegin, yyend);
662 }
663 l78:;
664 yyprintf((stderr, " ok %s @ %s\n", "Sequence", yybuf+yypos));
665 return 1;
666 l77:; yypos= yypos0; yythunkpos= yythunkpos0;
667 yyprintf((stderr, " fail %s @ %s\n", "Sequence", yybuf+yypos));
668 return 0;
669 }
670 YY_RULE(int) yy_Expression()
671 { int yypos0= yypos, yythunkpos0= yythunkpos;
672 yyprintf((stderr, "%s\n", "Expression")); if (!yy_Sequence()) goto l82;
673 l83:;
674 { int yypos84= yypos, yythunkpos84= yythunkpos; if (!yy_SLASH()) goto l84; if (!yy_Sequence()) goto l84; yyDo(yy_1_Expression, yybegin, yyend); goto l83;
675 l84:; yypos= yypos84; yythunkpos= yythunkpos84;
676 }
677 yyprintf((stderr, " ok %s @ %s\n", "Expression", yybuf+yypos));
678 return 1;
679 l82:; yypos= yypos0; yythunkpos= yythunkpos0;
680 yyprintf((stderr, " fail %s @ %s\n", "Expression", yybuf+yypos));
681 return 0;
682 }
683 YY_RULE(int) yy_LEFTARROW()
684 { int yypos0= yypos, yythunkpos0= yythunkpos;
685 yyprintf((stderr, "%s\n", "LEFTARROW")); if (!yymatchString("<-")) goto l85; if (!yy_Spacing()) goto l85;
686 yyprintf((stderr, " ok %s @ %s\n", "LEFTARROW", yybuf+yypos));
687 return 1;
688 l85:; yypos= yypos0; yythunkpos= yythunkpos0;
689 yyprintf((stderr, " fail %s @ %s\n", "LEFTARROW", yybuf+yypos));
690 return 0;
691 }
692 YY_RULE(int) yy_Identifier()
693 { int yypos0= yypos, yythunkpos0= yythunkpos;
694 yyprintf((stderr, "%s\n", "Identifier")); yyText(yybegin, yyend); if (!(YY_BEGIN)) goto l86; if (!yy_IdentStart()) goto l86;
695 l87:;
696 { int yypos88= yypos, yythunkpos88= yythunkpos; if (!yy_IdentCont()) goto l88; goto l87;
697 l88:; yypos= yypos88; yythunkpos= yythunkpos88;
698 } yyText(yybegin, yyend); if (!(YY_END)) goto l86; if (!yy_Spacing()) goto l86;
699 yyprintf((stderr, " ok %s @ %s\n", "Identifier", yybuf+yypos));
700 return 1;
701 l86:; yypos= yypos0; yythunkpos= yythunkpos0;
702 yyprintf((stderr, " fail %s @ %s\n", "Identifier", yybuf+yypos));
703 return 0;
704 }
705 YY_RULE(int) yy_EndOfFile()
706 { int yypos0= yypos, yythunkpos0= yythunkpos;
707 yyprintf((stderr, "%s\n", "EndOfFile"));
708 { int yypos90= yypos, yythunkpos90= yythunkpos; if (!yymatchDot()) goto l90; goto l89;
709 l90:; yypos= yypos90; yythunkpos= yythunkpos90;
710 }
711 yyprintf((stderr, " ok %s @ %s\n", "EndOfFile", yybuf+yypos));
712 return 1;
713 l89:; yypos= yypos0; yythunkpos= yythunkpos0;
714 yyprintf((stderr, " fail %s @ %s\n", "EndOfFile", yybuf+yypos));
715 return 0;
716 }
717 YY_RULE(int) yy_Definition()
718 { int yypos0= yypos, yythunkpos0= yythunkpos;
719 yyprintf((stderr, "%s\n", "Definition")); if (!yy_Identifier()) goto l91; yyDo(yy_1_Definition, yybegin, yyend); if (!yy_LEFTARROW()) goto l91; if (!yy_Expression()) goto l91; yyDo(yy_2_Definition, yybegin, yyend); yyText(yybegin, yyend); if (!( YYACCEPT )) goto l91;
720 yyprintf((stderr, " ok %s @ %s\n", "Definition", yybuf+yypos));
721 return 1;
722 l91:; yypos= yypos0; yythunkpos= yythunkpos0;
723 yyprintf((stderr, " fail %s @ %s\n", "Definition", yybuf+yypos));
724 return 0;
725 }
726 YY_RULE(int) yy_Spacing()
727 {
728 yyprintf((stderr, "%s\n", "Spacing"));
729 l93:;
730 { int yypos94= yypos, yythunkpos94= yythunkpos;
731 { int yypos95= yypos, yythunkpos95= yythunkpos; if (!yy_Space()) goto l96; goto l95;
732 l96:; yypos= yypos95; yythunkpos= yythunkpos95; if (!yy_Comment()) goto l94;
733 }
734 l95:; goto l93;
735 l94:; yypos= yypos94; yythunkpos= yythunkpos94;
736 }
737 yyprintf((stderr, " ok %s @ %s\n", "Spacing", yybuf+yypos));
738 return 1;
739 }
740 YY_RULE(int) yy_Grammar()
741 { int yypos0= yypos, yythunkpos0= yythunkpos;
742 yyprintf((stderr, "%s\n", "Grammar")); if (!yy_Spacing()) goto l97; if (!yy_Definition()) goto l97;
743 l98:;
744 { int yypos99= yypos, yythunkpos99= yythunkpos; if (!yy_Definition()) goto l99; goto l98;
745 l99:; yypos= yypos99; yythunkpos= yythunkpos99;
746 } if (!yy_EndOfFile()) goto l97;
747 yyprintf((stderr, " ok %s @ %s\n", "Grammar", yybuf+yypos));
748 return 1;
749 l97:; yypos= yypos0; yythunkpos= yythunkpos0;
750 yyprintf((stderr, " fail %s @ %s\n", "Grammar", yybuf+yypos));
751 return 0;
752 }
753
754 #ifndef YY_PART
755
756 typedef int (*yyrule)();
757
758 YY_PARSE(int) YYPARSEFROM(yyrule yystart)
759 {
760 int yyok;
761 if (!yybuflen)
762 {
763 yybuflen= 1024;
764 yybuf= malloc(yybuflen);
765 yytextlen= 1024;
766 yytext= malloc(yytextlen);
767 yythunkslen= 32;
768 yythunks= malloc(sizeof(yythunk) * yythunkslen);
769 yyvalslen= 32;
770 yyvals= malloc(sizeof(YYSTYPE) * yyvalslen);
771 yybegin= yyend= yypos= yylimit= yythunkpos= 0;
772 }
773 yybegin= yyend= yypos;
774 yythunkpos= 0;
775 yyval= yyvals;
776 yyok= yystart();
777 if (yyok) yyDone();
778 yyCommit();
779 return yyok;
780 (void)yyrefill;
781 (void)yymatchDot;
782 (void)yymatchChar;
783 (void)yymatchString;
784 (void)yymatchClass;
785 (void)yyDo;
786 (void)yyText;
787 (void)yyDone;
788 (void)yyCommit;
789 (void)yyAccept;
790 (void)yyPush;
791 (void)yyPop;
792 (void)yySet;
793 }
794
795 YY_PARSE(int) YYPARSE(void)
796 {
797 return YYPARSEFROM(yy_Grammar);
798 }
799
800 #endif
Something went wrong with that request. Please try again.