Mercurial > hg > Members > nobuyasu > SampleSource
comparison WindowsOnly/WinScript2/script-parser.output @ 0:db40c85cad7a default tip
upload sample source
author | nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 09 May 2011 03:11:59 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:db40c85cad7a |
---|---|
1 State 166 conflicts: 1 shift/reduce | |
2 | |
3 | |
4 Grammar | |
5 | |
6 0 $accept: unit "end of file" | |
7 | |
8 1 unit: define_or_state | |
9 2 | unit define_or_state | |
10 | |
11 3 define_or_state: error ';' | |
12 4 | function | |
13 5 | declaration | |
14 | |
15 6 declaration: type value_list ';' | |
16 7 | type "identifier" '(' ')' ';' | |
17 8 | type "identifier" '(' arglist ')' ';' | |
18 9 | "void" "identifier" '(' ')' ';' | |
19 10 | "void" "identifier" '(' arglist ')' ';' | |
20 | |
21 11 value_list: value | |
22 12 | value_list ',' value | |
23 | |
24 13 arglist: arg | |
25 14 | arglist ',' arg | |
26 | |
27 15 arg: type | |
28 16 | type '&' | |
29 17 | type "identifier" | |
30 18 | type '&' "identifier" | |
31 19 | type "identifier" '[' ']' | |
32 20 | type '&' "identifier" '[' ']' | |
33 | |
34 21 function: type "identifier" '(' ')' block | |
35 22 | type "identifier" '(' arglist ')' block | |
36 23 | "void" "identifier" '(' ')' block | |
37 24 | "void" "identifier" '(' arglist ')' block | |
38 | |
39 25 type: "int" | |
40 26 | "string" | |
41 | |
42 27 block: '{' decl_list state_list '}' | |
43 | |
44 28 decl_list: /* empty */ | |
45 29 | decls | |
46 | |
47 30 state_list: /* empty */ | |
48 31 | states | |
49 | |
50 32 decls: type value_list ';' | |
51 33 | decls type value_list ';' | |
52 | |
53 34 states: statement | |
54 35 | states statement | |
55 | |
56 36 statement: ';' | |
57 37 | assign ';' | |
58 38 | "identifier" '(' args ')' ';' | |
59 39 | "identifier" '(' ')' ';' | |
60 40 | "case" expr ':' | |
61 41 | "default" ':' | |
62 42 | "break" ';' | |
63 43 | "return" ';' | |
64 44 | "return" expr ';' | |
65 45 | "if" '(' expr ')' statement | |
66 46 | "if" '(' expr ')' statement "else" statement | |
67 47 | "for" '(' assign ';' expr ';' assign ')' statement | |
68 48 | "while" '(' expr ')' statement | |
69 49 | "switch" '(' expr ')' '{' state_list '}' | |
70 50 | block | |
71 | |
72 51 assign: value '=' expr | |
73 52 | value "+=" expr | |
74 53 | value "-=" expr | |
75 54 | value "*=" expr | |
76 55 | value "/=" expr | |
77 56 | value "%=" expr | |
78 | |
79 57 expr: expr "&&" expr | |
80 58 | expr "||" expr | |
81 59 | expr "==" expr | |
82 60 | expr "!=" expr | |
83 61 | expr '>' expr | |
84 62 | expr ">=" expr | |
85 63 | expr '<' expr | |
86 64 | expr "<=" expr | |
87 65 | expr '&' expr | |
88 66 | expr '|' expr | |
89 67 | expr "<<" expr | |
90 68 | expr ">>" expr | |
91 69 | expr '-' expr | |
92 70 | expr '+' expr | |
93 71 | expr '*' expr | |
94 72 | expr '/' expr | |
95 73 | expr '%' expr | |
96 74 | '-' expr | |
97 75 | '(' expr ')' | |
98 76 | value | |
99 77 | "ival" | |
100 78 | "sval" | |
101 79 | "identifier" '(' args ')' | |
102 80 | "identifier" '(' ')' | |
103 | |
104 81 value: "identifier" | |
105 82 | "identifier" '[' expr ']' | |
106 | |
107 83 args: expr | |
108 84 | args ',' expr | |
109 | |
110 | |
111 Terminals, with rules where they appear | |
112 | |
113 "end of file" (0) 0 | |
114 '%' (37) 73 | |
115 '&' (38) 16 18 20 65 | |
116 '(' (40) 7 8 9 10 21 22 23 24 38 39 45 46 47 48 49 75 79 80 | |
117 ')' (41) 7 8 9 10 21 22 23 24 38 39 45 46 47 48 49 75 79 80 | |
118 '*' (42) 71 | |
119 '+' (43) 70 | |
120 ',' (44) 12 14 84 | |
121 '-' (45) 69 74 | |
122 '/' (47) 72 | |
123 ':' (58) 40 41 | |
124 ';' (59) 3 6 7 8 9 10 32 33 36 37 38 39 42 43 44 47 | |
125 '<' (60) 63 | |
126 '=' (61) 51 | |
127 '>' (62) 61 | |
128 '[' (91) 19 20 82 | |
129 ']' (93) 19 20 82 | |
130 '{' (123) 27 49 | |
131 '|' (124) 66 | |
132 '}' (125) 27 49 | |
133 error (256) 3 | |
134 "ival" (258) 77 | |
135 "identifier" (259) 7 8 9 10 17 18 19 20 21 22 23 24 38 39 79 80 81 | |
136 82 | |
137 "sval" (260) 78 | |
138 "||" (261) 58 | |
139 "&&" (262) 57 | |
140 "==" (263) 59 | |
141 "!=" (264) 60 | |
142 ">=" (265) 62 | |
143 "<=" (266) 64 | |
144 "<<" (267) 67 | |
145 ">>" (268) 68 | |
146 "+=" (269) 52 | |
147 "-=" (270) 53 | |
148 "*=" (271) 54 | |
149 "/=" (272) 55 | |
150 "%=" (273) 56 | |
151 "if" (274) 45 46 | |
152 "else" (275) 46 | |
153 "while" (276) 48 | |
154 "for" (277) 47 | |
155 "switch" (278) 49 | |
156 "case" (279) 40 | |
157 "default" (280) 41 | |
158 "break" (281) 42 | |
159 "return" (282) 43 44 | |
160 "int" (283) 25 | |
161 "string" (284) 26 | |
162 "void" (285) 9 10 23 24 | |
163 NEG (286) | |
164 | |
165 | |
166 Nonterminals, with rules where they appear | |
167 | |
168 $accept (51) | |
169 on left: 0 | |
170 unit (52) | |
171 on left: 1 2, on right: 0 2 | |
172 define_or_state (53) | |
173 on left: 3 4 5, on right: 1 2 | |
174 declaration (54) | |
175 on left: 6 7 8 9 10, on right: 5 | |
176 value_list (55) | |
177 on left: 11 12, on right: 6 12 32 33 | |
178 arglist (56) | |
179 on left: 13 14, on right: 8 10 14 22 24 | |
180 arg (57) | |
181 on left: 15 16 17 18 19 20, on right: 13 14 | |
182 function (58) | |
183 on left: 21 22 23 24, on right: 4 | |
184 type (59) | |
185 on left: 25 26, on right: 6 7 8 15 16 17 18 19 20 21 22 32 33 | |
186 block (60) | |
187 on left: 27, on right: 21 22 23 24 50 | |
188 decl_list (61) | |
189 on left: 28 29, on right: 27 | |
190 state_list (62) | |
191 on left: 30 31, on right: 27 49 | |
192 decls (63) | |
193 on left: 32 33, on right: 29 33 | |
194 states (64) | |
195 on left: 34 35, on right: 31 35 | |
196 statement (65) | |
197 on left: 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50, | |
198 on right: 34 35 45 46 47 48 | |
199 assign (66) | |
200 on left: 51 52 53 54 55 56, on right: 37 47 | |
201 expr (67) | |
202 on left: 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | |
203 75 76 77 78 79 80, on right: 40 44 45 46 47 48 49 51 52 53 54 55 | |
204 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 82 | |
205 83 84 | |
206 value (68) | |
207 on left: 81 82, on right: 11 12 51 52 53 54 55 56 76 | |
208 args (69) | |
209 on left: 83 84, on right: 38 79 84 | |
210 | |
211 | |
212 state 0 | |
213 | |
214 0 $accept: . unit "end of file" | |
215 1 unit: . define_or_state | |
216 2 | . unit define_or_state | |
217 3 define_or_state: . error ';' | |
218 4 | . function | |
219 5 | . declaration | |
220 6 declaration: . type value_list ';' | |
221 7 | . type "identifier" '(' ')' ';' | |
222 8 | . type "identifier" '(' arglist ')' ';' | |
223 9 | . "void" "identifier" '(' ')' ';' | |
224 10 | . "void" "identifier" '(' arglist ')' ';' | |
225 21 function: . type "identifier" '(' ')' block | |
226 22 | . type "identifier" '(' arglist ')' block | |
227 23 | . "void" "identifier" '(' ')' block | |
228 24 | . "void" "identifier" '(' arglist ')' block | |
229 25 type: . "int" | |
230 26 | . "string" | |
231 | |
232 error shift, and go to state 1 | |
233 "int" shift, and go to state 2 | |
234 "string" shift, and go to state 3 | |
235 "void" shift, and go to state 4 | |
236 | |
237 unit go to state 5 | |
238 define_or_state go to state 6 | |
239 declaration go to state 7 | |
240 function go to state 8 | |
241 type go to state 9 | |
242 | |
243 | |
244 state 1 | |
245 | |
246 3 define_or_state: error . ';' | |
247 | |
248 ';' shift, and go to state 10 | |
249 | |
250 | |
251 state 2 | |
252 | |
253 25 type: "int" . | |
254 | |
255 $default reduce using rule 25 (type) | |
256 | |
257 | |
258 state 3 | |
259 | |
260 26 type: "string" . | |
261 | |
262 $default reduce using rule 26 (type) | |
263 | |
264 | |
265 state 4 | |
266 | |
267 9 declaration: "void" . "identifier" '(' ')' ';' | |
268 10 | "void" . "identifier" '(' arglist ')' ';' | |
269 23 function: "void" . "identifier" '(' ')' block | |
270 24 | "void" . "identifier" '(' arglist ')' block | |
271 | |
272 "identifier" shift, and go to state 11 | |
273 | |
274 | |
275 state 5 | |
276 | |
277 0 $accept: unit . "end of file" | |
278 2 unit: unit . define_or_state | |
279 3 define_or_state: . error ';' | |
280 4 | . function | |
281 5 | . declaration | |
282 6 declaration: . type value_list ';' | |
283 7 | . type "identifier" '(' ')' ';' | |
284 8 | . type "identifier" '(' arglist ')' ';' | |
285 9 | . "void" "identifier" '(' ')' ';' | |
286 10 | . "void" "identifier" '(' arglist ')' ';' | |
287 21 function: . type "identifier" '(' ')' block | |
288 22 | . type "identifier" '(' arglist ')' block | |
289 23 | . "void" "identifier" '(' ')' block | |
290 24 | . "void" "identifier" '(' arglist ')' block | |
291 25 type: . "int" | |
292 26 | . "string" | |
293 | |
294 "end of file" shift, and go to state 12 | |
295 error shift, and go to state 1 | |
296 "int" shift, and go to state 2 | |
297 "string" shift, and go to state 3 | |
298 "void" shift, and go to state 4 | |
299 | |
300 define_or_state go to state 13 | |
301 declaration go to state 7 | |
302 function go to state 8 | |
303 type go to state 9 | |
304 | |
305 | |
306 state 6 | |
307 | |
308 1 unit: define_or_state . | |
309 | |
310 $default reduce using rule 1 (unit) | |
311 | |
312 | |
313 state 7 | |
314 | |
315 5 define_or_state: declaration . | |
316 | |
317 $default reduce using rule 5 (define_or_state) | |
318 | |
319 | |
320 state 8 | |
321 | |
322 4 define_or_state: function . | |
323 | |
324 $default reduce using rule 4 (define_or_state) | |
325 | |
326 | |
327 state 9 | |
328 | |
329 6 declaration: type . value_list ';' | |
330 7 | type . "identifier" '(' ')' ';' | |
331 8 | type . "identifier" '(' arglist ')' ';' | |
332 11 value_list: . value | |
333 12 | . value_list ',' value | |
334 21 function: type . "identifier" '(' ')' block | |
335 22 | type . "identifier" '(' arglist ')' block | |
336 81 value: . "identifier" | |
337 82 | . "identifier" '[' expr ']' | |
338 | |
339 "identifier" shift, and go to state 14 | |
340 | |
341 value_list go to state 15 | |
342 value go to state 16 | |
343 | |
344 | |
345 state 10 | |
346 | |
347 3 define_or_state: error ';' . | |
348 | |
349 $default reduce using rule 3 (define_or_state) | |
350 | |
351 | |
352 state 11 | |
353 | |
354 9 declaration: "void" "identifier" . '(' ')' ';' | |
355 10 | "void" "identifier" . '(' arglist ')' ';' | |
356 23 function: "void" "identifier" . '(' ')' block | |
357 24 | "void" "identifier" . '(' arglist ')' block | |
358 | |
359 '(' shift, and go to state 17 | |
360 | |
361 | |
362 state 12 | |
363 | |
364 0 $accept: unit "end of file" . | |
365 | |
366 $default accept | |
367 | |
368 | |
369 state 13 | |
370 | |
371 2 unit: unit define_or_state . | |
372 | |
373 $default reduce using rule 2 (unit) | |
374 | |
375 | |
376 state 14 | |
377 | |
378 7 declaration: type "identifier" . '(' ')' ';' | |
379 8 | type "identifier" . '(' arglist ')' ';' | |
380 21 function: type "identifier" . '(' ')' block | |
381 22 | type "identifier" . '(' arglist ')' block | |
382 81 value: "identifier" . [';', ','] | |
383 82 | "identifier" . '[' expr ']' | |
384 | |
385 '(' shift, and go to state 18 | |
386 '[' shift, and go to state 19 | |
387 | |
388 $default reduce using rule 81 (value) | |
389 | |
390 | |
391 state 15 | |
392 | |
393 6 declaration: type value_list . ';' | |
394 12 value_list: value_list . ',' value | |
395 | |
396 ';' shift, and go to state 20 | |
397 ',' shift, and go to state 21 | |
398 | |
399 | |
400 state 16 | |
401 | |
402 11 value_list: value . | |
403 | |
404 $default reduce using rule 11 (value_list) | |
405 | |
406 | |
407 state 17 | |
408 | |
409 9 declaration: "void" "identifier" '(' . ')' ';' | |
410 10 | "void" "identifier" '(' . arglist ')' ';' | |
411 13 arglist: . arg | |
412 14 | . arglist ',' arg | |
413 15 arg: . type | |
414 16 | . type '&' | |
415 17 | . type "identifier" | |
416 18 | . type '&' "identifier" | |
417 19 | . type "identifier" '[' ']' | |
418 20 | . type '&' "identifier" '[' ']' | |
419 23 function: "void" "identifier" '(' . ')' block | |
420 24 | "void" "identifier" '(' . arglist ')' block | |
421 25 type: . "int" | |
422 26 | . "string" | |
423 | |
424 "int" shift, and go to state 2 | |
425 "string" shift, and go to state 3 | |
426 ')' shift, and go to state 22 | |
427 | |
428 arglist go to state 23 | |
429 arg go to state 24 | |
430 type go to state 25 | |
431 | |
432 | |
433 state 18 | |
434 | |
435 7 declaration: type "identifier" '(' . ')' ';' | |
436 8 | type "identifier" '(' . arglist ')' ';' | |
437 13 arglist: . arg | |
438 14 | . arglist ',' arg | |
439 15 arg: . type | |
440 16 | . type '&' | |
441 17 | . type "identifier" | |
442 18 | . type '&' "identifier" | |
443 19 | . type "identifier" '[' ']' | |
444 20 | . type '&' "identifier" '[' ']' | |
445 21 function: type "identifier" '(' . ')' block | |
446 22 | type "identifier" '(' . arglist ')' block | |
447 25 type: . "int" | |
448 26 | . "string" | |
449 | |
450 "int" shift, and go to state 2 | |
451 "string" shift, and go to state 3 | |
452 ')' shift, and go to state 26 | |
453 | |
454 arglist go to state 27 | |
455 arg go to state 24 | |
456 type go to state 25 | |
457 | |
458 | |
459 state 19 | |
460 | |
461 57 expr: . expr "&&" expr | |
462 58 | . expr "||" expr | |
463 59 | . expr "==" expr | |
464 60 | . expr "!=" expr | |
465 61 | . expr '>' expr | |
466 62 | . expr ">=" expr | |
467 63 | . expr '<' expr | |
468 64 | . expr "<=" expr | |
469 65 | . expr '&' expr | |
470 66 | . expr '|' expr | |
471 67 | . expr "<<" expr | |
472 68 | . expr ">>" expr | |
473 69 | . expr '-' expr | |
474 70 | . expr '+' expr | |
475 71 | . expr '*' expr | |
476 72 | . expr '/' expr | |
477 73 | . expr '%' expr | |
478 74 | . '-' expr | |
479 75 | . '(' expr ')' | |
480 76 | . value | |
481 77 | . "ival" | |
482 78 | . "sval" | |
483 79 | . "identifier" '(' args ')' | |
484 80 | . "identifier" '(' ')' | |
485 81 value: . "identifier" | |
486 82 | . "identifier" '[' expr ']' | |
487 82 | "identifier" '[' . expr ']' | |
488 | |
489 "ival" shift, and go to state 28 | |
490 "identifier" shift, and go to state 29 | |
491 "sval" shift, and go to state 30 | |
492 '-' shift, and go to state 31 | |
493 '(' shift, and go to state 32 | |
494 | |
495 expr go to state 33 | |
496 value go to state 34 | |
497 | |
498 | |
499 state 20 | |
500 | |
501 6 declaration: type value_list ';' . | |
502 | |
503 $default reduce using rule 6 (declaration) | |
504 | |
505 | |
506 state 21 | |
507 | |
508 12 value_list: value_list ',' . value | |
509 81 value: . "identifier" | |
510 82 | . "identifier" '[' expr ']' | |
511 | |
512 "identifier" shift, and go to state 35 | |
513 | |
514 value go to state 36 | |
515 | |
516 | |
517 state 22 | |
518 | |
519 9 declaration: "void" "identifier" '(' ')' . ';' | |
520 23 function: "void" "identifier" '(' ')' . block | |
521 27 block: . '{' decl_list state_list '}' | |
522 | |
523 ';' shift, and go to state 37 | |
524 '{' shift, and go to state 38 | |
525 | |
526 block go to state 39 | |
527 | |
528 | |
529 state 23 | |
530 | |
531 10 declaration: "void" "identifier" '(' arglist . ')' ';' | |
532 14 arglist: arglist . ',' arg | |
533 24 function: "void" "identifier" '(' arglist . ')' block | |
534 | |
535 ')' shift, and go to state 40 | |
536 ',' shift, and go to state 41 | |
537 | |
538 | |
539 state 24 | |
540 | |
541 13 arglist: arg . | |
542 | |
543 $default reduce using rule 13 (arglist) | |
544 | |
545 | |
546 state 25 | |
547 | |
548 15 arg: type . [')', ','] | |
549 16 | type . '&' | |
550 17 | type . "identifier" | |
551 18 | type . '&' "identifier" | |
552 19 | type . "identifier" '[' ']' | |
553 20 | type . '&' "identifier" '[' ']' | |
554 | |
555 "identifier" shift, and go to state 42 | |
556 '&' shift, and go to state 43 | |
557 | |
558 $default reduce using rule 15 (arg) | |
559 | |
560 | |
561 state 26 | |
562 | |
563 7 declaration: type "identifier" '(' ')' . ';' | |
564 21 function: type "identifier" '(' ')' . block | |
565 27 block: . '{' decl_list state_list '}' | |
566 | |
567 ';' shift, and go to state 44 | |
568 '{' shift, and go to state 38 | |
569 | |
570 block go to state 45 | |
571 | |
572 | |
573 state 27 | |
574 | |
575 8 declaration: type "identifier" '(' arglist . ')' ';' | |
576 14 arglist: arglist . ',' arg | |
577 22 function: type "identifier" '(' arglist . ')' block | |
578 | |
579 ')' shift, and go to state 46 | |
580 ',' shift, and go to state 41 | |
581 | |
582 | |
583 state 28 | |
584 | |
585 77 expr: "ival" . | |
586 | |
587 $default reduce using rule 77 (expr) | |
588 | |
589 | |
590 state 29 | |
591 | |
592 79 expr: "identifier" . '(' args ')' | |
593 80 | "identifier" . '(' ')' | |
594 81 value: "identifier" . ["||", "&&", "==", "!=", ">=", "<=", "<<", ">>", '>', '<', '&', '|', '+', '-', '*', '/', '%', ';', ')', ',', ']', ':'] | |
595 82 | "identifier" . '[' expr ']' | |
596 | |
597 '(' shift, and go to state 47 | |
598 '[' shift, and go to state 19 | |
599 | |
600 $default reduce using rule 81 (value) | |
601 | |
602 | |
603 state 30 | |
604 | |
605 78 expr: "sval" . | |
606 | |
607 $default reduce using rule 78 (expr) | |
608 | |
609 | |
610 state 31 | |
611 | |
612 57 expr: . expr "&&" expr | |
613 58 | . expr "||" expr | |
614 59 | . expr "==" expr | |
615 60 | . expr "!=" expr | |
616 61 | . expr '>' expr | |
617 62 | . expr ">=" expr | |
618 63 | . expr '<' expr | |
619 64 | . expr "<=" expr | |
620 65 | . expr '&' expr | |
621 66 | . expr '|' expr | |
622 67 | . expr "<<" expr | |
623 68 | . expr ">>" expr | |
624 69 | . expr '-' expr | |
625 70 | . expr '+' expr | |
626 71 | . expr '*' expr | |
627 72 | . expr '/' expr | |
628 73 | . expr '%' expr | |
629 74 | . '-' expr | |
630 74 | '-' . expr | |
631 75 | . '(' expr ')' | |
632 76 | . value | |
633 77 | . "ival" | |
634 78 | . "sval" | |
635 79 | . "identifier" '(' args ')' | |
636 80 | . "identifier" '(' ')' | |
637 81 value: . "identifier" | |
638 82 | . "identifier" '[' expr ']' | |
639 | |
640 "ival" shift, and go to state 28 | |
641 "identifier" shift, and go to state 29 | |
642 "sval" shift, and go to state 30 | |
643 '-' shift, and go to state 31 | |
644 '(' shift, and go to state 32 | |
645 | |
646 expr go to state 48 | |
647 value go to state 34 | |
648 | |
649 | |
650 state 32 | |
651 | |
652 57 expr: . expr "&&" expr | |
653 58 | . expr "||" expr | |
654 59 | . expr "==" expr | |
655 60 | . expr "!=" expr | |
656 61 | . expr '>' expr | |
657 62 | . expr ">=" expr | |
658 63 | . expr '<' expr | |
659 64 | . expr "<=" expr | |
660 65 | . expr '&' expr | |
661 66 | . expr '|' expr | |
662 67 | . expr "<<" expr | |
663 68 | . expr ">>" expr | |
664 69 | . expr '-' expr | |
665 70 | . expr '+' expr | |
666 71 | . expr '*' expr | |
667 72 | . expr '/' expr | |
668 73 | . expr '%' expr | |
669 74 | . '-' expr | |
670 75 | . '(' expr ')' | |
671 75 | '(' . expr ')' | |
672 76 | . value | |
673 77 | . "ival" | |
674 78 | . "sval" | |
675 79 | . "identifier" '(' args ')' | |
676 80 | . "identifier" '(' ')' | |
677 81 value: . "identifier" | |
678 82 | . "identifier" '[' expr ']' | |
679 | |
680 "ival" shift, and go to state 28 | |
681 "identifier" shift, and go to state 29 | |
682 "sval" shift, and go to state 30 | |
683 '-' shift, and go to state 31 | |
684 '(' shift, and go to state 32 | |
685 | |
686 expr go to state 49 | |
687 value go to state 34 | |
688 | |
689 | |
690 state 33 | |
691 | |
692 57 expr: expr . "&&" expr | |
693 58 | expr . "||" expr | |
694 59 | expr . "==" expr | |
695 60 | expr . "!=" expr | |
696 61 | expr . '>' expr | |
697 62 | expr . ">=" expr | |
698 63 | expr . '<' expr | |
699 64 | expr . "<=" expr | |
700 65 | expr . '&' expr | |
701 66 | expr . '|' expr | |
702 67 | expr . "<<" expr | |
703 68 | expr . ">>" expr | |
704 69 | expr . '-' expr | |
705 70 | expr . '+' expr | |
706 71 | expr . '*' expr | |
707 72 | expr . '/' expr | |
708 73 | expr . '%' expr | |
709 82 value: "identifier" '[' expr . ']' | |
710 | |
711 "||" shift, and go to state 50 | |
712 "&&" shift, and go to state 51 | |
713 "==" shift, and go to state 52 | |
714 "!=" shift, and go to state 53 | |
715 ">=" shift, and go to state 54 | |
716 "<=" shift, and go to state 55 | |
717 "<<" shift, and go to state 56 | |
718 ">>" shift, and go to state 57 | |
719 '>' shift, and go to state 58 | |
720 '<' shift, and go to state 59 | |
721 '&' shift, and go to state 60 | |
722 '|' shift, and go to state 61 | |
723 '+' shift, and go to state 62 | |
724 '-' shift, and go to state 63 | |
725 '*' shift, and go to state 64 | |
726 '/' shift, and go to state 65 | |
727 '%' shift, and go to state 66 | |
728 ']' shift, and go to state 67 | |
729 | |
730 | |
731 state 34 | |
732 | |
733 76 expr: value . | |
734 | |
735 $default reduce using rule 76 (expr) | |
736 | |
737 | |
738 state 35 | |
739 | |
740 81 value: "identifier" . ["+=", "-=", "*=", "/=", "%=", ';', ',', '='] | |
741 82 | "identifier" . '[' expr ']' | |
742 | |
743 '[' shift, and go to state 19 | |
744 | |
745 $default reduce using rule 81 (value) | |
746 | |
747 | |
748 state 36 | |
749 | |
750 12 value_list: value_list ',' value . | |
751 | |
752 $default reduce using rule 12 (value_list) | |
753 | |
754 | |
755 state 37 | |
756 | |
757 9 declaration: "void" "identifier" '(' ')' ';' . | |
758 | |
759 $default reduce using rule 9 (declaration) | |
760 | |
761 | |
762 state 38 | |
763 | |
764 25 type: . "int" | |
765 26 | . "string" | |
766 27 block: '{' . decl_list state_list '}' | |
767 28 decl_list: . ["identifier", "if", "while", "for", "switch", "case", "default", "break", "return", ';', '{', '}'] | |
768 29 | . decls | |
769 32 decls: . type value_list ';' | |
770 33 | . decls type value_list ';' | |
771 | |
772 "int" shift, and go to state 2 | |
773 "string" shift, and go to state 3 | |
774 | |
775 $default reduce using rule 28 (decl_list) | |
776 | |
777 type go to state 68 | |
778 decl_list go to state 69 | |
779 decls go to state 70 | |
780 | |
781 | |
782 state 39 | |
783 | |
784 23 function: "void" "identifier" '(' ')' block . | |
785 | |
786 $default reduce using rule 23 (function) | |
787 | |
788 | |
789 state 40 | |
790 | |
791 10 declaration: "void" "identifier" '(' arglist ')' . ';' | |
792 24 function: "void" "identifier" '(' arglist ')' . block | |
793 27 block: . '{' decl_list state_list '}' | |
794 | |
795 ';' shift, and go to state 71 | |
796 '{' shift, and go to state 38 | |
797 | |
798 block go to state 72 | |
799 | |
800 | |
801 state 41 | |
802 | |
803 14 arglist: arglist ',' . arg | |
804 15 arg: . type | |
805 16 | . type '&' | |
806 17 | . type "identifier" | |
807 18 | . type '&' "identifier" | |
808 19 | . type "identifier" '[' ']' | |
809 20 | . type '&' "identifier" '[' ']' | |
810 25 type: . "int" | |
811 26 | . "string" | |
812 | |
813 "int" shift, and go to state 2 | |
814 "string" shift, and go to state 3 | |
815 | |
816 arg go to state 73 | |
817 type go to state 25 | |
818 | |
819 | |
820 state 42 | |
821 | |
822 17 arg: type "identifier" . [')', ','] | |
823 19 | type "identifier" . '[' ']' | |
824 | |
825 '[' shift, and go to state 74 | |
826 | |
827 $default reduce using rule 17 (arg) | |
828 | |
829 | |
830 state 43 | |
831 | |
832 16 arg: type '&' . [')', ','] | |
833 18 | type '&' . "identifier" | |
834 20 | type '&' . "identifier" '[' ']' | |
835 | |
836 "identifier" shift, and go to state 75 | |
837 | |
838 $default reduce using rule 16 (arg) | |
839 | |
840 | |
841 state 44 | |
842 | |
843 7 declaration: type "identifier" '(' ')' ';' . | |
844 | |
845 $default reduce using rule 7 (declaration) | |
846 | |
847 | |
848 state 45 | |
849 | |
850 21 function: type "identifier" '(' ')' block . | |
851 | |
852 $default reduce using rule 21 (function) | |
853 | |
854 | |
855 state 46 | |
856 | |
857 8 declaration: type "identifier" '(' arglist ')' . ';' | |
858 22 function: type "identifier" '(' arglist ')' . block | |
859 27 block: . '{' decl_list state_list '}' | |
860 | |
861 ';' shift, and go to state 76 | |
862 '{' shift, and go to state 38 | |
863 | |
864 block go to state 77 | |
865 | |
866 | |
867 state 47 | |
868 | |
869 57 expr: . expr "&&" expr | |
870 58 | . expr "||" expr | |
871 59 | . expr "==" expr | |
872 60 | . expr "!=" expr | |
873 61 | . expr '>' expr | |
874 62 | . expr ">=" expr | |
875 63 | . expr '<' expr | |
876 64 | . expr "<=" expr | |
877 65 | . expr '&' expr | |
878 66 | . expr '|' expr | |
879 67 | . expr "<<" expr | |
880 68 | . expr ">>" expr | |
881 69 | . expr '-' expr | |
882 70 | . expr '+' expr | |
883 71 | . expr '*' expr | |
884 72 | . expr '/' expr | |
885 73 | . expr '%' expr | |
886 74 | . '-' expr | |
887 75 | . '(' expr ')' | |
888 76 | . value | |
889 77 | . "ival" | |
890 78 | . "sval" | |
891 79 | . "identifier" '(' args ')' | |
892 79 | "identifier" '(' . args ')' | |
893 80 | . "identifier" '(' ')' | |
894 80 | "identifier" '(' . ')' | |
895 81 value: . "identifier" | |
896 82 | . "identifier" '[' expr ']' | |
897 83 args: . expr | |
898 84 | . args ',' expr | |
899 | |
900 "ival" shift, and go to state 28 | |
901 "identifier" shift, and go to state 29 | |
902 "sval" shift, and go to state 30 | |
903 '-' shift, and go to state 31 | |
904 '(' shift, and go to state 32 | |
905 ')' shift, and go to state 78 | |
906 | |
907 expr go to state 79 | |
908 value go to state 34 | |
909 args go to state 80 | |
910 | |
911 | |
912 state 48 | |
913 | |
914 57 expr: expr . "&&" expr | |
915 58 | expr . "||" expr | |
916 59 | expr . "==" expr | |
917 60 | expr . "!=" expr | |
918 61 | expr . '>' expr | |
919 62 | expr . ">=" expr | |
920 63 | expr . '<' expr | |
921 64 | expr . "<=" expr | |
922 65 | expr . '&' expr | |
923 66 | expr . '|' expr | |
924 67 | expr . "<<" expr | |
925 68 | expr . ">>" expr | |
926 69 | expr . '-' expr | |
927 70 | expr . '+' expr | |
928 71 | expr . '*' expr | |
929 72 | expr . '/' expr | |
930 73 | expr . '%' expr | |
931 74 | '-' expr . ["||", "&&", "==", "!=", ">=", "<=", "<<", ">>", '>', '<', '&', '|', '+', '-', '*', '/', '%', ';', ')', ',', ']', ':'] | |
932 | |
933 $default reduce using rule 74 (expr) | |
934 | |
935 Conflict between rule 74 and token "||" resolved as reduce ("||" < NEG). | |
936 Conflict between rule 74 and token "&&" resolved as reduce ("&&" < NEG). | |
937 Conflict between rule 74 and token "==" resolved as reduce ("==" < NEG). | |
938 Conflict between rule 74 and token "!=" resolved as reduce ("!=" < NEG). | |
939 Conflict between rule 74 and token ">=" resolved as reduce (">=" < NEG). | |
940 Conflict between rule 74 and token "<=" resolved as reduce ("<=" < NEG). | |
941 Conflict between rule 74 and token "<<" resolved as reduce ("<<" < NEG). | |
942 Conflict between rule 74 and token ">>" resolved as reduce (">>" < NEG). | |
943 Conflict between rule 74 and token '>' resolved as reduce ('>' < NEG). | |
944 Conflict between rule 74 and token '<' resolved as reduce ('<' < NEG). | |
945 Conflict between rule 74 and token '&' resolved as reduce ('&' < NEG). | |
946 Conflict between rule 74 and token '|' resolved as reduce ('|' < NEG). | |
947 Conflict between rule 74 and token '+' resolved as reduce ('+' < NEG). | |
948 Conflict between rule 74 and token '-' resolved as reduce ('-' < NEG). | |
949 Conflict between rule 74 and token '*' resolved as reduce ('*' < NEG). | |
950 Conflict between rule 74 and token '/' resolved as reduce ('/' < NEG). | |
951 Conflict between rule 74 and token '%' resolved as reduce ('%' < NEG). | |
952 | |
953 | |
954 state 49 | |
955 | |
956 57 expr: expr . "&&" expr | |
957 58 | expr . "||" expr | |
958 59 | expr . "==" expr | |
959 60 | expr . "!=" expr | |
960 61 | expr . '>' expr | |
961 62 | expr . ">=" expr | |
962 63 | expr . '<' expr | |
963 64 | expr . "<=" expr | |
964 65 | expr . '&' expr | |
965 66 | expr . '|' expr | |
966 67 | expr . "<<" expr | |
967 68 | expr . ">>" expr | |
968 69 | expr . '-' expr | |
969 70 | expr . '+' expr | |
970 71 | expr . '*' expr | |
971 72 | expr . '/' expr | |
972 73 | expr . '%' expr | |
973 75 | '(' expr . ')' | |
974 | |
975 "||" shift, and go to state 50 | |
976 "&&" shift, and go to state 51 | |
977 "==" shift, and go to state 52 | |
978 "!=" shift, and go to state 53 | |
979 ">=" shift, and go to state 54 | |
980 "<=" shift, and go to state 55 | |
981 "<<" shift, and go to state 56 | |
982 ">>" shift, and go to state 57 | |
983 '>' shift, and go to state 58 | |
984 '<' shift, and go to state 59 | |
985 '&' shift, and go to state 60 | |
986 '|' shift, and go to state 61 | |
987 '+' shift, and go to state 62 | |
988 '-' shift, and go to state 63 | |
989 '*' shift, and go to state 64 | |
990 '/' shift, and go to state 65 | |
991 '%' shift, and go to state 66 | |
992 ')' shift, and go to state 81 | |
993 | |
994 | |
995 state 50 | |
996 | |
997 57 expr: . expr "&&" expr | |
998 58 | . expr "||" expr | |
999 58 | expr "||" . expr | |
1000 59 | . expr "==" expr | |
1001 60 | . expr "!=" expr | |
1002 61 | . expr '>' expr | |
1003 62 | . expr ">=" expr | |
1004 63 | . expr '<' expr | |
1005 64 | . expr "<=" expr | |
1006 65 | . expr '&' expr | |
1007 66 | . expr '|' expr | |
1008 67 | . expr "<<" expr | |
1009 68 | . expr ">>" expr | |
1010 69 | . expr '-' expr | |
1011 70 | . expr '+' expr | |
1012 71 | . expr '*' expr | |
1013 72 | . expr '/' expr | |
1014 73 | . expr '%' expr | |
1015 74 | . '-' expr | |
1016 75 | . '(' expr ')' | |
1017 76 | . value | |
1018 77 | . "ival" | |
1019 78 | . "sval" | |
1020 79 | . "identifier" '(' args ')' | |
1021 80 | . "identifier" '(' ')' | |
1022 81 value: . "identifier" | |
1023 82 | . "identifier" '[' expr ']' | |
1024 | |
1025 "ival" shift, and go to state 28 | |
1026 "identifier" shift, and go to state 29 | |
1027 "sval" shift, and go to state 30 | |
1028 '-' shift, and go to state 31 | |
1029 '(' shift, and go to state 32 | |
1030 | |
1031 expr go to state 82 | |
1032 value go to state 34 | |
1033 | |
1034 | |
1035 state 51 | |
1036 | |
1037 57 expr: . expr "&&" expr | |
1038 57 | expr "&&" . expr | |
1039 58 | . expr "||" expr | |
1040 59 | . expr "==" expr | |
1041 60 | . expr "!=" expr | |
1042 61 | . expr '>' expr | |
1043 62 | . expr ">=" expr | |
1044 63 | . expr '<' expr | |
1045 64 | . expr "<=" expr | |
1046 65 | . expr '&' expr | |
1047 66 | . expr '|' expr | |
1048 67 | . expr "<<" expr | |
1049 68 | . expr ">>" expr | |
1050 69 | . expr '-' expr | |
1051 70 | . expr '+' expr | |
1052 71 | . expr '*' expr | |
1053 72 | . expr '/' expr | |
1054 73 | . expr '%' expr | |
1055 74 | . '-' expr | |
1056 75 | . '(' expr ')' | |
1057 76 | . value | |
1058 77 | . "ival" | |
1059 78 | . "sval" | |
1060 79 | . "identifier" '(' args ')' | |
1061 80 | . "identifier" '(' ')' | |
1062 81 value: . "identifier" | |
1063 82 | . "identifier" '[' expr ']' | |
1064 | |
1065 "ival" shift, and go to state 28 | |
1066 "identifier" shift, and go to state 29 | |
1067 "sval" shift, and go to state 30 | |
1068 '-' shift, and go to state 31 | |
1069 '(' shift, and go to state 32 | |
1070 | |
1071 expr go to state 83 | |
1072 value go to state 34 | |
1073 | |
1074 | |
1075 state 52 | |
1076 | |
1077 57 expr: . expr "&&" expr | |
1078 58 | . expr "||" expr | |
1079 59 | . expr "==" expr | |
1080 59 | expr "==" . expr | |
1081 60 | . expr "!=" expr | |
1082 61 | . expr '>' expr | |
1083 62 | . expr ">=" expr | |
1084 63 | . expr '<' expr | |
1085 64 | . expr "<=" expr | |
1086 65 | . expr '&' expr | |
1087 66 | . expr '|' expr | |
1088 67 | . expr "<<" expr | |
1089 68 | . expr ">>" expr | |
1090 69 | . expr '-' expr | |
1091 70 | . expr '+' expr | |
1092 71 | . expr '*' expr | |
1093 72 | . expr '/' expr | |
1094 73 | . expr '%' expr | |
1095 74 | . '-' expr | |
1096 75 | . '(' expr ')' | |
1097 76 | . value | |
1098 77 | . "ival" | |
1099 78 | . "sval" | |
1100 79 | . "identifier" '(' args ')' | |
1101 80 | . "identifier" '(' ')' | |
1102 81 value: . "identifier" | |
1103 82 | . "identifier" '[' expr ']' | |
1104 | |
1105 "ival" shift, and go to state 28 | |
1106 "identifier" shift, and go to state 29 | |
1107 "sval" shift, and go to state 30 | |
1108 '-' shift, and go to state 31 | |
1109 '(' shift, and go to state 32 | |
1110 | |
1111 expr go to state 84 | |
1112 value go to state 34 | |
1113 | |
1114 | |
1115 state 53 | |
1116 | |
1117 57 expr: . expr "&&" expr | |
1118 58 | . expr "||" expr | |
1119 59 | . expr "==" expr | |
1120 60 | . expr "!=" expr | |
1121 60 | expr "!=" . expr | |
1122 61 | . expr '>' expr | |
1123 62 | . expr ">=" expr | |
1124 63 | . expr '<' expr | |
1125 64 | . expr "<=" expr | |
1126 65 | . expr '&' expr | |
1127 66 | . expr '|' expr | |
1128 67 | . expr "<<" expr | |
1129 68 | . expr ">>" expr | |
1130 69 | . expr '-' expr | |
1131 70 | . expr '+' expr | |
1132 71 | . expr '*' expr | |
1133 72 | . expr '/' expr | |
1134 73 | . expr '%' expr | |
1135 74 | . '-' expr | |
1136 75 | . '(' expr ')' | |
1137 76 | . value | |
1138 77 | . "ival" | |
1139 78 | . "sval" | |
1140 79 | . "identifier" '(' args ')' | |
1141 80 | . "identifier" '(' ')' | |
1142 81 value: . "identifier" | |
1143 82 | . "identifier" '[' expr ']' | |
1144 | |
1145 "ival" shift, and go to state 28 | |
1146 "identifier" shift, and go to state 29 | |
1147 "sval" shift, and go to state 30 | |
1148 '-' shift, and go to state 31 | |
1149 '(' shift, and go to state 32 | |
1150 | |
1151 expr go to state 85 | |
1152 value go to state 34 | |
1153 | |
1154 | |
1155 state 54 | |
1156 | |
1157 57 expr: . expr "&&" expr | |
1158 58 | . expr "||" expr | |
1159 59 | . expr "==" expr | |
1160 60 | . expr "!=" expr | |
1161 61 | . expr '>' expr | |
1162 62 | . expr ">=" expr | |
1163 62 | expr ">=" . expr | |
1164 63 | . expr '<' expr | |
1165 64 | . expr "<=" expr | |
1166 65 | . expr '&' expr | |
1167 66 | . expr '|' expr | |
1168 67 | . expr "<<" expr | |
1169 68 | . expr ">>" expr | |
1170 69 | . expr '-' expr | |
1171 70 | . expr '+' expr | |
1172 71 | . expr '*' expr | |
1173 72 | . expr '/' expr | |
1174 73 | . expr '%' expr | |
1175 74 | . '-' expr | |
1176 75 | . '(' expr ')' | |
1177 76 | . value | |
1178 77 | . "ival" | |
1179 78 | . "sval" | |
1180 79 | . "identifier" '(' args ')' | |
1181 80 | . "identifier" '(' ')' | |
1182 81 value: . "identifier" | |
1183 82 | . "identifier" '[' expr ']' | |
1184 | |
1185 "ival" shift, and go to state 28 | |
1186 "identifier" shift, and go to state 29 | |
1187 "sval" shift, and go to state 30 | |
1188 '-' shift, and go to state 31 | |
1189 '(' shift, and go to state 32 | |
1190 | |
1191 expr go to state 86 | |
1192 value go to state 34 | |
1193 | |
1194 | |
1195 state 55 | |
1196 | |
1197 57 expr: . expr "&&" expr | |
1198 58 | . expr "||" expr | |
1199 59 | . expr "==" expr | |
1200 60 | . expr "!=" expr | |
1201 61 | . expr '>' expr | |
1202 62 | . expr ">=" expr | |
1203 63 | . expr '<' expr | |
1204 64 | . expr "<=" expr | |
1205 64 | expr "<=" . expr | |
1206 65 | . expr '&' expr | |
1207 66 | . expr '|' expr | |
1208 67 | . expr "<<" expr | |
1209 68 | . expr ">>" expr | |
1210 69 | . expr '-' expr | |
1211 70 | . expr '+' expr | |
1212 71 | . expr '*' expr | |
1213 72 | . expr '/' expr | |
1214 73 | . expr '%' expr | |
1215 74 | . '-' expr | |
1216 75 | . '(' expr ')' | |
1217 76 | . value | |
1218 77 | . "ival" | |
1219 78 | . "sval" | |
1220 79 | . "identifier" '(' args ')' | |
1221 80 | . "identifier" '(' ')' | |
1222 81 value: . "identifier" | |
1223 82 | . "identifier" '[' expr ']' | |
1224 | |
1225 "ival" shift, and go to state 28 | |
1226 "identifier" shift, and go to state 29 | |
1227 "sval" shift, and go to state 30 | |
1228 '-' shift, and go to state 31 | |
1229 '(' shift, and go to state 32 | |
1230 | |
1231 expr go to state 87 | |
1232 value go to state 34 | |
1233 | |
1234 | |
1235 state 56 | |
1236 | |
1237 57 expr: . expr "&&" expr | |
1238 58 | . expr "||" expr | |
1239 59 | . expr "==" expr | |
1240 60 | . expr "!=" expr | |
1241 61 | . expr '>' expr | |
1242 62 | . expr ">=" expr | |
1243 63 | . expr '<' expr | |
1244 64 | . expr "<=" expr | |
1245 65 | . expr '&' expr | |
1246 66 | . expr '|' expr | |
1247 67 | . expr "<<" expr | |
1248 67 | expr "<<" . expr | |
1249 68 | . expr ">>" expr | |
1250 69 | . expr '-' expr | |
1251 70 | . expr '+' expr | |
1252 71 | . expr '*' expr | |
1253 72 | . expr '/' expr | |
1254 73 | . expr '%' expr | |
1255 74 | . '-' expr | |
1256 75 | . '(' expr ')' | |
1257 76 | . value | |
1258 77 | . "ival" | |
1259 78 | . "sval" | |
1260 79 | . "identifier" '(' args ')' | |
1261 80 | . "identifier" '(' ')' | |
1262 81 value: . "identifier" | |
1263 82 | . "identifier" '[' expr ']' | |
1264 | |
1265 "ival" shift, and go to state 28 | |
1266 "identifier" shift, and go to state 29 | |
1267 "sval" shift, and go to state 30 | |
1268 '-' shift, and go to state 31 | |
1269 '(' shift, and go to state 32 | |
1270 | |
1271 expr go to state 88 | |
1272 value go to state 34 | |
1273 | |
1274 | |
1275 state 57 | |
1276 | |
1277 57 expr: . expr "&&" expr | |
1278 58 | . expr "||" expr | |
1279 59 | . expr "==" expr | |
1280 60 | . expr "!=" expr | |
1281 61 | . expr '>' expr | |
1282 62 | . expr ">=" expr | |
1283 63 | . expr '<' expr | |
1284 64 | . expr "<=" expr | |
1285 65 | . expr '&' expr | |
1286 66 | . expr '|' expr | |
1287 67 | . expr "<<" expr | |
1288 68 | . expr ">>" expr | |
1289 68 | expr ">>" . expr | |
1290 69 | . expr '-' expr | |
1291 70 | . expr '+' expr | |
1292 71 | . expr '*' expr | |
1293 72 | . expr '/' expr | |
1294 73 | . expr '%' expr | |
1295 74 | . '-' expr | |
1296 75 | . '(' expr ')' | |
1297 76 | . value | |
1298 77 | . "ival" | |
1299 78 | . "sval" | |
1300 79 | . "identifier" '(' args ')' | |
1301 80 | . "identifier" '(' ')' | |
1302 81 value: . "identifier" | |
1303 82 | . "identifier" '[' expr ']' | |
1304 | |
1305 "ival" shift, and go to state 28 | |
1306 "identifier" shift, and go to state 29 | |
1307 "sval" shift, and go to state 30 | |
1308 '-' shift, and go to state 31 | |
1309 '(' shift, and go to state 32 | |
1310 | |
1311 expr go to state 89 | |
1312 value go to state 34 | |
1313 | |
1314 | |
1315 state 58 | |
1316 | |
1317 57 expr: . expr "&&" expr | |
1318 58 | . expr "||" expr | |
1319 59 | . expr "==" expr | |
1320 60 | . expr "!=" expr | |
1321 61 | . expr '>' expr | |
1322 61 | expr '>' . expr | |
1323 62 | . expr ">=" expr | |
1324 63 | . expr '<' expr | |
1325 64 | . expr "<=" expr | |
1326 65 | . expr '&' expr | |
1327 66 | . expr '|' expr | |
1328 67 | . expr "<<" expr | |
1329 68 | . expr ">>" expr | |
1330 69 | . expr '-' expr | |
1331 70 | . expr '+' expr | |
1332 71 | . expr '*' expr | |
1333 72 | . expr '/' expr | |
1334 73 | . expr '%' expr | |
1335 74 | . '-' expr | |
1336 75 | . '(' expr ')' | |
1337 76 | . value | |
1338 77 | . "ival" | |
1339 78 | . "sval" | |
1340 79 | . "identifier" '(' args ')' | |
1341 80 | . "identifier" '(' ')' | |
1342 81 value: . "identifier" | |
1343 82 | . "identifier" '[' expr ']' | |
1344 | |
1345 "ival" shift, and go to state 28 | |
1346 "identifier" shift, and go to state 29 | |
1347 "sval" shift, and go to state 30 | |
1348 '-' shift, and go to state 31 | |
1349 '(' shift, and go to state 32 | |
1350 | |
1351 expr go to state 90 | |
1352 value go to state 34 | |
1353 | |
1354 | |
1355 state 59 | |
1356 | |
1357 57 expr: . expr "&&" expr | |
1358 58 | . expr "||" expr | |
1359 59 | . expr "==" expr | |
1360 60 | . expr "!=" expr | |
1361 61 | . expr '>' expr | |
1362 62 | . expr ">=" expr | |
1363 63 | . expr '<' expr | |
1364 63 | expr '<' . expr | |
1365 64 | . expr "<=" expr | |
1366 65 | . expr '&' expr | |
1367 66 | . expr '|' expr | |
1368 67 | . expr "<<" expr | |
1369 68 | . expr ">>" expr | |
1370 69 | . expr '-' expr | |
1371 70 | . expr '+' expr | |
1372 71 | . expr '*' expr | |
1373 72 | . expr '/' expr | |
1374 73 | . expr '%' expr | |
1375 74 | . '-' expr | |
1376 75 | . '(' expr ')' | |
1377 76 | . value | |
1378 77 | . "ival" | |
1379 78 | . "sval" | |
1380 79 | . "identifier" '(' args ')' | |
1381 80 | . "identifier" '(' ')' | |
1382 81 value: . "identifier" | |
1383 82 | . "identifier" '[' expr ']' | |
1384 | |
1385 "ival" shift, and go to state 28 | |
1386 "identifier" shift, and go to state 29 | |
1387 "sval" shift, and go to state 30 | |
1388 '-' shift, and go to state 31 | |
1389 '(' shift, and go to state 32 | |
1390 | |
1391 expr go to state 91 | |
1392 value go to state 34 | |
1393 | |
1394 | |
1395 state 60 | |
1396 | |
1397 57 expr: . expr "&&" expr | |
1398 58 | . expr "||" expr | |
1399 59 | . expr "==" expr | |
1400 60 | . expr "!=" expr | |
1401 61 | . expr '>' expr | |
1402 62 | . expr ">=" expr | |
1403 63 | . expr '<' expr | |
1404 64 | . expr "<=" expr | |
1405 65 | . expr '&' expr | |
1406 65 | expr '&' . expr | |
1407 66 | . expr '|' expr | |
1408 67 | . expr "<<" expr | |
1409 68 | . expr ">>" expr | |
1410 69 | . expr '-' expr | |
1411 70 | . expr '+' expr | |
1412 71 | . expr '*' expr | |
1413 72 | . expr '/' expr | |
1414 73 | . expr '%' expr | |
1415 74 | . '-' expr | |
1416 75 | . '(' expr ')' | |
1417 76 | . value | |
1418 77 | . "ival" | |
1419 78 | . "sval" | |
1420 79 | . "identifier" '(' args ')' | |
1421 80 | . "identifier" '(' ')' | |
1422 81 value: . "identifier" | |
1423 82 | . "identifier" '[' expr ']' | |
1424 | |
1425 "ival" shift, and go to state 28 | |
1426 "identifier" shift, and go to state 29 | |
1427 "sval" shift, and go to state 30 | |
1428 '-' shift, and go to state 31 | |
1429 '(' shift, and go to state 32 | |
1430 | |
1431 expr go to state 92 | |
1432 value go to state 34 | |
1433 | |
1434 | |
1435 state 61 | |
1436 | |
1437 57 expr: . expr "&&" expr | |
1438 58 | . expr "||" expr | |
1439 59 | . expr "==" expr | |
1440 60 | . expr "!=" expr | |
1441 61 | . expr '>' expr | |
1442 62 | . expr ">=" expr | |
1443 63 | . expr '<' expr | |
1444 64 | . expr "<=" expr | |
1445 65 | . expr '&' expr | |
1446 66 | . expr '|' expr | |
1447 66 | expr '|' . expr | |
1448 67 | . expr "<<" expr | |
1449 68 | . expr ">>" expr | |
1450 69 | . expr '-' expr | |
1451 70 | . expr '+' expr | |
1452 71 | . expr '*' expr | |
1453 72 | . expr '/' expr | |
1454 73 | . expr '%' expr | |
1455 74 | . '-' expr | |
1456 75 | . '(' expr ')' | |
1457 76 | . value | |
1458 77 | . "ival" | |
1459 78 | . "sval" | |
1460 79 | . "identifier" '(' args ')' | |
1461 80 | . "identifier" '(' ')' | |
1462 81 value: . "identifier" | |
1463 82 | . "identifier" '[' expr ']' | |
1464 | |
1465 "ival" shift, and go to state 28 | |
1466 "identifier" shift, and go to state 29 | |
1467 "sval" shift, and go to state 30 | |
1468 '-' shift, and go to state 31 | |
1469 '(' shift, and go to state 32 | |
1470 | |
1471 expr go to state 93 | |
1472 value go to state 34 | |
1473 | |
1474 | |
1475 state 62 | |
1476 | |
1477 57 expr: . expr "&&" expr | |
1478 58 | . expr "||" expr | |
1479 59 | . expr "==" expr | |
1480 60 | . expr "!=" expr | |
1481 61 | . expr '>' expr | |
1482 62 | . expr ">=" expr | |
1483 63 | . expr '<' expr | |
1484 64 | . expr "<=" expr | |
1485 65 | . expr '&' expr | |
1486 66 | . expr '|' expr | |
1487 67 | . expr "<<" expr | |
1488 68 | . expr ">>" expr | |
1489 69 | . expr '-' expr | |
1490 70 | . expr '+' expr | |
1491 70 | expr '+' . expr | |
1492 71 | . expr '*' expr | |
1493 72 | . expr '/' expr | |
1494 73 | . expr '%' expr | |
1495 74 | . '-' expr | |
1496 75 | . '(' expr ')' | |
1497 76 | . value | |
1498 77 | . "ival" | |
1499 78 | . "sval" | |
1500 79 | . "identifier" '(' args ')' | |
1501 80 | . "identifier" '(' ')' | |
1502 81 value: . "identifier" | |
1503 82 | . "identifier" '[' expr ']' | |
1504 | |
1505 "ival" shift, and go to state 28 | |
1506 "identifier" shift, and go to state 29 | |
1507 "sval" shift, and go to state 30 | |
1508 '-' shift, and go to state 31 | |
1509 '(' shift, and go to state 32 | |
1510 | |
1511 expr go to state 94 | |
1512 value go to state 34 | |
1513 | |
1514 | |
1515 state 63 | |
1516 | |
1517 57 expr: . expr "&&" expr | |
1518 58 | . expr "||" expr | |
1519 59 | . expr "==" expr | |
1520 60 | . expr "!=" expr | |
1521 61 | . expr '>' expr | |
1522 62 | . expr ">=" expr | |
1523 63 | . expr '<' expr | |
1524 64 | . expr "<=" expr | |
1525 65 | . expr '&' expr | |
1526 66 | . expr '|' expr | |
1527 67 | . expr "<<" expr | |
1528 68 | . expr ">>" expr | |
1529 69 | . expr '-' expr | |
1530 69 | expr '-' . expr | |
1531 70 | . expr '+' expr | |
1532 71 | . expr '*' expr | |
1533 72 | . expr '/' expr | |
1534 73 | . expr '%' expr | |
1535 74 | . '-' expr | |
1536 75 | . '(' expr ')' | |
1537 76 | . value | |
1538 77 | . "ival" | |
1539 78 | . "sval" | |
1540 79 | . "identifier" '(' args ')' | |
1541 80 | . "identifier" '(' ')' | |
1542 81 value: . "identifier" | |
1543 82 | . "identifier" '[' expr ']' | |
1544 | |
1545 "ival" shift, and go to state 28 | |
1546 "identifier" shift, and go to state 29 | |
1547 "sval" shift, and go to state 30 | |
1548 '-' shift, and go to state 31 | |
1549 '(' shift, and go to state 32 | |
1550 | |
1551 expr go to state 95 | |
1552 value go to state 34 | |
1553 | |
1554 | |
1555 state 64 | |
1556 | |
1557 57 expr: . expr "&&" expr | |
1558 58 | . expr "||" expr | |
1559 59 | . expr "==" expr | |
1560 60 | . expr "!=" expr | |
1561 61 | . expr '>' expr | |
1562 62 | . expr ">=" expr | |
1563 63 | . expr '<' expr | |
1564 64 | . expr "<=" expr | |
1565 65 | . expr '&' expr | |
1566 66 | . expr '|' expr | |
1567 67 | . expr "<<" expr | |
1568 68 | . expr ">>" expr | |
1569 69 | . expr '-' expr | |
1570 70 | . expr '+' expr | |
1571 71 | . expr '*' expr | |
1572 71 | expr '*' . expr | |
1573 72 | . expr '/' expr | |
1574 73 | . expr '%' expr | |
1575 74 | . '-' expr | |
1576 75 | . '(' expr ')' | |
1577 76 | . value | |
1578 77 | . "ival" | |
1579 78 | . "sval" | |
1580 79 | . "identifier" '(' args ')' | |
1581 80 | . "identifier" '(' ')' | |
1582 81 value: . "identifier" | |
1583 82 | . "identifier" '[' expr ']' | |
1584 | |
1585 "ival" shift, and go to state 28 | |
1586 "identifier" shift, and go to state 29 | |
1587 "sval" shift, and go to state 30 | |
1588 '-' shift, and go to state 31 | |
1589 '(' shift, and go to state 32 | |
1590 | |
1591 expr go to state 96 | |
1592 value go to state 34 | |
1593 | |
1594 | |
1595 state 65 | |
1596 | |
1597 57 expr: . expr "&&" expr | |
1598 58 | . expr "||" expr | |
1599 59 | . expr "==" expr | |
1600 60 | . expr "!=" expr | |
1601 61 | . expr '>' expr | |
1602 62 | . expr ">=" expr | |
1603 63 | . expr '<' expr | |
1604 64 | . expr "<=" expr | |
1605 65 | . expr '&' expr | |
1606 66 | . expr '|' expr | |
1607 67 | . expr "<<" expr | |
1608 68 | . expr ">>" expr | |
1609 69 | . expr '-' expr | |
1610 70 | . expr '+' expr | |
1611 71 | . expr '*' expr | |
1612 72 | . expr '/' expr | |
1613 72 | expr '/' . expr | |
1614 73 | . expr '%' expr | |
1615 74 | . '-' expr | |
1616 75 | . '(' expr ')' | |
1617 76 | . value | |
1618 77 | . "ival" | |
1619 78 | . "sval" | |
1620 79 | . "identifier" '(' args ')' | |
1621 80 | . "identifier" '(' ')' | |
1622 81 value: . "identifier" | |
1623 82 | . "identifier" '[' expr ']' | |
1624 | |
1625 "ival" shift, and go to state 28 | |
1626 "identifier" shift, and go to state 29 | |
1627 "sval" shift, and go to state 30 | |
1628 '-' shift, and go to state 31 | |
1629 '(' shift, and go to state 32 | |
1630 | |
1631 expr go to state 97 | |
1632 value go to state 34 | |
1633 | |
1634 | |
1635 state 66 | |
1636 | |
1637 57 expr: . expr "&&" expr | |
1638 58 | . expr "||" expr | |
1639 59 | . expr "==" expr | |
1640 60 | . expr "!=" expr | |
1641 61 | . expr '>' expr | |
1642 62 | . expr ">=" expr | |
1643 63 | . expr '<' expr | |
1644 64 | . expr "<=" expr | |
1645 65 | . expr '&' expr | |
1646 66 | . expr '|' expr | |
1647 67 | . expr "<<" expr | |
1648 68 | . expr ">>" expr | |
1649 69 | . expr '-' expr | |
1650 70 | . expr '+' expr | |
1651 71 | . expr '*' expr | |
1652 72 | . expr '/' expr | |
1653 73 | . expr '%' expr | |
1654 73 | expr '%' . expr | |
1655 74 | . '-' expr | |
1656 75 | . '(' expr ')' | |
1657 76 | . value | |
1658 77 | . "ival" | |
1659 78 | . "sval" | |
1660 79 | . "identifier" '(' args ')' | |
1661 80 | . "identifier" '(' ')' | |
1662 81 value: . "identifier" | |
1663 82 | . "identifier" '[' expr ']' | |
1664 | |
1665 "ival" shift, and go to state 28 | |
1666 "identifier" shift, and go to state 29 | |
1667 "sval" shift, and go to state 30 | |
1668 '-' shift, and go to state 31 | |
1669 '(' shift, and go to state 32 | |
1670 | |
1671 expr go to state 98 | |
1672 value go to state 34 | |
1673 | |
1674 | |
1675 state 67 | |
1676 | |
1677 82 value: "identifier" '[' expr ']' . | |
1678 | |
1679 $default reduce using rule 82 (value) | |
1680 | |
1681 | |
1682 state 68 | |
1683 | |
1684 11 value_list: . value | |
1685 12 | . value_list ',' value | |
1686 32 decls: type . value_list ';' | |
1687 81 value: . "identifier" | |
1688 82 | . "identifier" '[' expr ']' | |
1689 | |
1690 "identifier" shift, and go to state 35 | |
1691 | |
1692 value_list go to state 99 | |
1693 value go to state 16 | |
1694 | |
1695 | |
1696 state 69 | |
1697 | |
1698 27 block: . '{' decl_list state_list '}' | |
1699 27 | '{' decl_list . state_list '}' | |
1700 30 state_list: . ['}'] | |
1701 31 | . states | |
1702 34 states: . statement | |
1703 35 | . states statement | |
1704 36 statement: . ';' | |
1705 37 | . assign ';' | |
1706 38 | . "identifier" '(' args ')' ';' | |
1707 39 | . "identifier" '(' ')' ';' | |
1708 40 | . "case" expr ':' | |
1709 41 | . "default" ':' | |
1710 42 | . "break" ';' | |
1711 43 | . "return" ';' | |
1712 44 | . "return" expr ';' | |
1713 45 | . "if" '(' expr ')' statement | |
1714 46 | . "if" '(' expr ')' statement "else" statement | |
1715 47 | . "for" '(' assign ';' expr ';' assign ')' statement | |
1716 48 | . "while" '(' expr ')' statement | |
1717 49 | . "switch" '(' expr ')' '{' state_list '}' | |
1718 50 | . block | |
1719 51 assign: . value '=' expr | |
1720 52 | . value "+=" expr | |
1721 53 | . value "-=" expr | |
1722 54 | . value "*=" expr | |
1723 55 | . value "/=" expr | |
1724 56 | . value "%=" expr | |
1725 81 value: . "identifier" | |
1726 82 | . "identifier" '[' expr ']' | |
1727 | |
1728 "identifier" shift, and go to state 100 | |
1729 "if" shift, and go to state 101 | |
1730 "while" shift, and go to state 102 | |
1731 "for" shift, and go to state 103 | |
1732 "switch" shift, and go to state 104 | |
1733 "case" shift, and go to state 105 | |
1734 "default" shift, and go to state 106 | |
1735 "break" shift, and go to state 107 | |
1736 "return" shift, and go to state 108 | |
1737 ';' shift, and go to state 109 | |
1738 '{' shift, and go to state 38 | |
1739 | |
1740 $default reduce using rule 30 (state_list) | |
1741 | |
1742 block go to state 110 | |
1743 state_list go to state 111 | |
1744 states go to state 112 | |
1745 statement go to state 113 | |
1746 assign go to state 114 | |
1747 value go to state 115 | |
1748 | |
1749 | |
1750 state 70 | |
1751 | |
1752 25 type: . "int" | |
1753 26 | . "string" | |
1754 29 decl_list: decls . ["identifier", "if", "while", "for", "switch", "case", "default", "break", "return", ';', '{', '}'] | |
1755 33 decls: decls . type value_list ';' | |
1756 | |
1757 "int" shift, and go to state 2 | |
1758 "string" shift, and go to state 3 | |
1759 | |
1760 $default reduce using rule 29 (decl_list) | |
1761 | |
1762 type go to state 116 | |
1763 | |
1764 | |
1765 state 71 | |
1766 | |
1767 10 declaration: "void" "identifier" '(' arglist ')' ';' . | |
1768 | |
1769 $default reduce using rule 10 (declaration) | |
1770 | |
1771 | |
1772 state 72 | |
1773 | |
1774 24 function: "void" "identifier" '(' arglist ')' block . | |
1775 | |
1776 $default reduce using rule 24 (function) | |
1777 | |
1778 | |
1779 state 73 | |
1780 | |
1781 14 arglist: arglist ',' arg . | |
1782 | |
1783 $default reduce using rule 14 (arglist) | |
1784 | |
1785 | |
1786 state 74 | |
1787 | |
1788 19 arg: type "identifier" '[' . ']' | |
1789 | |
1790 ']' shift, and go to state 117 | |
1791 | |
1792 | |
1793 state 75 | |
1794 | |
1795 18 arg: type '&' "identifier" . [')', ','] | |
1796 20 | type '&' "identifier" . '[' ']' | |
1797 | |
1798 '[' shift, and go to state 118 | |
1799 | |
1800 $default reduce using rule 18 (arg) | |
1801 | |
1802 | |
1803 state 76 | |
1804 | |
1805 8 declaration: type "identifier" '(' arglist ')' ';' . | |
1806 | |
1807 $default reduce using rule 8 (declaration) | |
1808 | |
1809 | |
1810 state 77 | |
1811 | |
1812 22 function: type "identifier" '(' arglist ')' block . | |
1813 | |
1814 $default reduce using rule 22 (function) | |
1815 | |
1816 | |
1817 state 78 | |
1818 | |
1819 80 expr: "identifier" '(' ')' . | |
1820 | |
1821 $default reduce using rule 80 (expr) | |
1822 | |
1823 | |
1824 state 79 | |
1825 | |
1826 57 expr: expr . "&&" expr | |
1827 58 | expr . "||" expr | |
1828 59 | expr . "==" expr | |
1829 60 | expr . "!=" expr | |
1830 61 | expr . '>' expr | |
1831 62 | expr . ">=" expr | |
1832 63 | expr . '<' expr | |
1833 64 | expr . "<=" expr | |
1834 65 | expr . '&' expr | |
1835 66 | expr . '|' expr | |
1836 67 | expr . "<<" expr | |
1837 68 | expr . ">>" expr | |
1838 69 | expr . '-' expr | |
1839 70 | expr . '+' expr | |
1840 71 | expr . '*' expr | |
1841 72 | expr . '/' expr | |
1842 73 | expr . '%' expr | |
1843 83 args: expr . [')', ','] | |
1844 | |
1845 "||" shift, and go to state 50 | |
1846 "&&" shift, and go to state 51 | |
1847 "==" shift, and go to state 52 | |
1848 "!=" shift, and go to state 53 | |
1849 ">=" shift, and go to state 54 | |
1850 "<=" shift, and go to state 55 | |
1851 "<<" shift, and go to state 56 | |
1852 ">>" shift, and go to state 57 | |
1853 '>' shift, and go to state 58 | |
1854 '<' shift, and go to state 59 | |
1855 '&' shift, and go to state 60 | |
1856 '|' shift, and go to state 61 | |
1857 '+' shift, and go to state 62 | |
1858 '-' shift, and go to state 63 | |
1859 '*' shift, and go to state 64 | |
1860 '/' shift, and go to state 65 | |
1861 '%' shift, and go to state 66 | |
1862 | |
1863 $default reduce using rule 83 (args) | |
1864 | |
1865 | |
1866 state 80 | |
1867 | |
1868 79 expr: "identifier" '(' args . ')' | |
1869 84 args: args . ',' expr | |
1870 | |
1871 ')' shift, and go to state 119 | |
1872 ',' shift, and go to state 120 | |
1873 | |
1874 | |
1875 state 81 | |
1876 | |
1877 75 expr: '(' expr ')' . | |
1878 | |
1879 $default reduce using rule 75 (expr) | |
1880 | |
1881 | |
1882 state 82 | |
1883 | |
1884 57 expr: expr . "&&" expr | |
1885 58 | expr . "||" expr ["||", ';', ')', ',', ']', ':'] | |
1886 58 | expr "||" expr . ["||", ';', ')', ',', ']', ':'] | |
1887 59 | expr . "==" expr | |
1888 60 | expr . "!=" expr | |
1889 61 | expr . '>' expr | |
1890 62 | expr . ">=" expr | |
1891 63 | expr . '<' expr | |
1892 64 | expr . "<=" expr | |
1893 65 | expr . '&' expr | |
1894 66 | expr . '|' expr | |
1895 67 | expr . "<<" expr | |
1896 68 | expr . ">>" expr | |
1897 69 | expr . '-' expr | |
1898 70 | expr . '+' expr | |
1899 71 | expr . '*' expr | |
1900 72 | expr . '/' expr | |
1901 73 | expr . '%' expr | |
1902 | |
1903 "&&" shift, and go to state 51 | |
1904 "==" shift, and go to state 52 | |
1905 "!=" shift, and go to state 53 | |
1906 ">=" shift, and go to state 54 | |
1907 "<=" shift, and go to state 55 | |
1908 "<<" shift, and go to state 56 | |
1909 ">>" shift, and go to state 57 | |
1910 '>' shift, and go to state 58 | |
1911 '<' shift, and go to state 59 | |
1912 '&' shift, and go to state 60 | |
1913 '|' shift, and go to state 61 | |
1914 '+' shift, and go to state 62 | |
1915 '-' shift, and go to state 63 | |
1916 '*' shift, and go to state 64 | |
1917 '/' shift, and go to state 65 | |
1918 '%' shift, and go to state 66 | |
1919 | |
1920 $default reduce using rule 58 (expr) | |
1921 | |
1922 Conflict between rule 58 and token "||" resolved as reduce (%left "||"). | |
1923 Conflict between rule 58 and token "&&" resolved as shift ("||" < "&&"). | |
1924 Conflict between rule 58 and token "==" resolved as shift ("||" < "=="). | |
1925 Conflict between rule 58 and token "!=" resolved as shift ("||" < "!="). | |
1926 Conflict between rule 58 and token ">=" resolved as shift ("||" < ">="). | |
1927 Conflict between rule 58 and token "<=" resolved as shift ("||" < "<="). | |
1928 Conflict between rule 58 and token "<<" resolved as shift ("||" < "<<"). | |
1929 Conflict between rule 58 and token ">>" resolved as shift ("||" < ">>"). | |
1930 Conflict between rule 58 and token '>' resolved as shift ("||" < '>'). | |
1931 Conflict between rule 58 and token '<' resolved as shift ("||" < '<'). | |
1932 Conflict between rule 58 and token '&' resolved as shift ("||" < '&'). | |
1933 Conflict between rule 58 and token '|' resolved as shift ("||" < '|'). | |
1934 Conflict between rule 58 and token '+' resolved as shift ("||" < '+'). | |
1935 Conflict between rule 58 and token '-' resolved as shift ("||" < '-'). | |
1936 Conflict between rule 58 and token '*' resolved as shift ("||" < '*'). | |
1937 Conflict between rule 58 and token '/' resolved as shift ("||" < '/'). | |
1938 Conflict between rule 58 and token '%' resolved as shift ("||" < '%'). | |
1939 | |
1940 | |
1941 state 83 | |
1942 | |
1943 57 expr: expr . "&&" expr ["||", "&&", ';', ')', ',', ']', ':'] | |
1944 57 | expr "&&" expr . ["||", "&&", ';', ')', ',', ']', ':'] | |
1945 58 | expr . "||" expr | |
1946 59 | expr . "==" expr | |
1947 60 | expr . "!=" expr | |
1948 61 | expr . '>' expr | |
1949 62 | expr . ">=" expr | |
1950 63 | expr . '<' expr | |
1951 64 | expr . "<=" expr | |
1952 65 | expr . '&' expr | |
1953 66 | expr . '|' expr | |
1954 67 | expr . "<<" expr | |
1955 68 | expr . ">>" expr | |
1956 69 | expr . '-' expr | |
1957 70 | expr . '+' expr | |
1958 71 | expr . '*' expr | |
1959 72 | expr . '/' expr | |
1960 73 | expr . '%' expr | |
1961 | |
1962 "==" shift, and go to state 52 | |
1963 "!=" shift, and go to state 53 | |
1964 ">=" shift, and go to state 54 | |
1965 "<=" shift, and go to state 55 | |
1966 "<<" shift, and go to state 56 | |
1967 ">>" shift, and go to state 57 | |
1968 '>' shift, and go to state 58 | |
1969 '<' shift, and go to state 59 | |
1970 '&' shift, and go to state 60 | |
1971 '|' shift, and go to state 61 | |
1972 '+' shift, and go to state 62 | |
1973 '-' shift, and go to state 63 | |
1974 '*' shift, and go to state 64 | |
1975 '/' shift, and go to state 65 | |
1976 '%' shift, and go to state 66 | |
1977 | |
1978 $default reduce using rule 57 (expr) | |
1979 | |
1980 Conflict between rule 57 and token "||" resolved as reduce ("||" < "&&"). | |
1981 Conflict between rule 57 and token "&&" resolved as reduce (%left "&&"). | |
1982 Conflict between rule 57 and token "==" resolved as shift ("&&" < "=="). | |
1983 Conflict between rule 57 and token "!=" resolved as shift ("&&" < "!="). | |
1984 Conflict between rule 57 and token ">=" resolved as shift ("&&" < ">="). | |
1985 Conflict between rule 57 and token "<=" resolved as shift ("&&" < "<="). | |
1986 Conflict between rule 57 and token "<<" resolved as shift ("&&" < "<<"). | |
1987 Conflict between rule 57 and token ">>" resolved as shift ("&&" < ">>"). | |
1988 Conflict between rule 57 and token '>' resolved as shift ("&&" < '>'). | |
1989 Conflict between rule 57 and token '<' resolved as shift ("&&" < '<'). | |
1990 Conflict between rule 57 and token '&' resolved as shift ("&&" < '&'). | |
1991 Conflict between rule 57 and token '|' resolved as shift ("&&" < '|'). | |
1992 Conflict between rule 57 and token '+' resolved as shift ("&&" < '+'). | |
1993 Conflict between rule 57 and token '-' resolved as shift ("&&" < '-'). | |
1994 Conflict between rule 57 and token '*' resolved as shift ("&&" < '*'). | |
1995 Conflict between rule 57 and token '/' resolved as shift ("&&" < '/'). | |
1996 Conflict between rule 57 and token '%' resolved as shift ("&&" < '%'). | |
1997 | |
1998 | |
1999 state 84 | |
2000 | |
2001 57 expr: expr . "&&" expr | |
2002 58 | expr . "||" expr | |
2003 59 | expr . "==" expr ["||", "&&", ';', ')', ',', ']', ':'] | |
2004 59 | expr "==" expr . ["||", "&&", ';', ')', ',', ']', ':'] | |
2005 60 | expr . "!=" expr | |
2006 61 | expr . '>' expr | |
2007 62 | expr . ">=" expr | |
2008 63 | expr . '<' expr | |
2009 64 | expr . "<=" expr | |
2010 65 | expr . '&' expr | |
2011 66 | expr . '|' expr | |
2012 67 | expr . "<<" expr | |
2013 68 | expr . ">>" expr | |
2014 69 | expr . '-' expr | |
2015 70 | expr . '+' expr | |
2016 71 | expr . '*' expr | |
2017 72 | expr . '/' expr | |
2018 73 | expr . '%' expr | |
2019 | |
2020 "<<" shift, and go to state 56 | |
2021 ">>" shift, and go to state 57 | |
2022 '&' shift, and go to state 60 | |
2023 '|' shift, and go to state 61 | |
2024 '+' shift, and go to state 62 | |
2025 '-' shift, and go to state 63 | |
2026 '*' shift, and go to state 64 | |
2027 '/' shift, and go to state 65 | |
2028 '%' shift, and go to state 66 | |
2029 | |
2030 "==" error (nonassociative) | |
2031 "!=" error (nonassociative) | |
2032 ">=" error (nonassociative) | |
2033 "<=" error (nonassociative) | |
2034 '>' error (nonassociative) | |
2035 '<' error (nonassociative) | |
2036 | |
2037 $default reduce using rule 59 (expr) | |
2038 | |
2039 Conflict between rule 59 and token "||" resolved as reduce ("||" < "=="). | |
2040 Conflict between rule 59 and token "&&" resolved as reduce ("&&" < "=="). | |
2041 Conflict between rule 59 and token "==" resolved as an error (%nonassoc "=="). | |
2042 Conflict between rule 59 and token "!=" resolved as an error (%nonassoc "!="). | |
2043 Conflict between rule 59 and token ">=" resolved as an error (%nonassoc ">="). | |
2044 Conflict between rule 59 and token "<=" resolved as an error (%nonassoc "<="). | |
2045 Conflict between rule 59 and token "<<" resolved as shift ("==" < "<<"). | |
2046 Conflict between rule 59 and token ">>" resolved as shift ("==" < ">>"). | |
2047 Conflict between rule 59 and token '>' resolved as an error (%nonassoc '>'). | |
2048 Conflict between rule 59 and token '<' resolved as an error (%nonassoc '<'). | |
2049 Conflict between rule 59 and token '&' resolved as shift ("==" < '&'). | |
2050 Conflict between rule 59 and token '|' resolved as shift ("==" < '|'). | |
2051 Conflict between rule 59 and token '+' resolved as shift ("==" < '+'). | |
2052 Conflict between rule 59 and token '-' resolved as shift ("==" < '-'). | |
2053 Conflict between rule 59 and token '*' resolved as shift ("==" < '*'). | |
2054 Conflict between rule 59 and token '/' resolved as shift ("==" < '/'). | |
2055 Conflict between rule 59 and token '%' resolved as shift ("==" < '%'). | |
2056 | |
2057 | |
2058 state 85 | |
2059 | |
2060 57 expr: expr . "&&" expr | |
2061 58 | expr . "||" expr | |
2062 59 | expr . "==" expr | |
2063 60 | expr . "!=" expr ["||", "&&", ';', ')', ',', ']', ':'] | |
2064 60 | expr "!=" expr . ["||", "&&", ';', ')', ',', ']', ':'] | |
2065 61 | expr . '>' expr | |
2066 62 | expr . ">=" expr | |
2067 63 | expr . '<' expr | |
2068 64 | expr . "<=" expr | |
2069 65 | expr . '&' expr | |
2070 66 | expr . '|' expr | |
2071 67 | expr . "<<" expr | |
2072 68 | expr . ">>" expr | |
2073 69 | expr . '-' expr | |
2074 70 | expr . '+' expr | |
2075 71 | expr . '*' expr | |
2076 72 | expr . '/' expr | |
2077 73 | expr . '%' expr | |
2078 | |
2079 "<<" shift, and go to state 56 | |
2080 ">>" shift, and go to state 57 | |
2081 '&' shift, and go to state 60 | |
2082 '|' shift, and go to state 61 | |
2083 '+' shift, and go to state 62 | |
2084 '-' shift, and go to state 63 | |
2085 '*' shift, and go to state 64 | |
2086 '/' shift, and go to state 65 | |
2087 '%' shift, and go to state 66 | |
2088 | |
2089 "==" error (nonassociative) | |
2090 "!=" error (nonassociative) | |
2091 ">=" error (nonassociative) | |
2092 "<=" error (nonassociative) | |
2093 '>' error (nonassociative) | |
2094 '<' error (nonassociative) | |
2095 | |
2096 $default reduce using rule 60 (expr) | |
2097 | |
2098 Conflict between rule 60 and token "||" resolved as reduce ("||" < "!="). | |
2099 Conflict between rule 60 and token "&&" resolved as reduce ("&&" < "!="). | |
2100 Conflict between rule 60 and token "==" resolved as an error (%nonassoc "=="). | |
2101 Conflict between rule 60 and token "!=" resolved as an error (%nonassoc "!="). | |
2102 Conflict between rule 60 and token ">=" resolved as an error (%nonassoc ">="). | |
2103 Conflict between rule 60 and token "<=" resolved as an error (%nonassoc "<="). | |
2104 Conflict between rule 60 and token "<<" resolved as shift ("!=" < "<<"). | |
2105 Conflict between rule 60 and token ">>" resolved as shift ("!=" < ">>"). | |
2106 Conflict between rule 60 and token '>' resolved as an error (%nonassoc '>'). | |
2107 Conflict between rule 60 and token '<' resolved as an error (%nonassoc '<'). | |
2108 Conflict between rule 60 and token '&' resolved as shift ("!=" < '&'). | |
2109 Conflict between rule 60 and token '|' resolved as shift ("!=" < '|'). | |
2110 Conflict between rule 60 and token '+' resolved as shift ("!=" < '+'). | |
2111 Conflict between rule 60 and token '-' resolved as shift ("!=" < '-'). | |
2112 Conflict between rule 60 and token '*' resolved as shift ("!=" < '*'). | |
2113 Conflict between rule 60 and token '/' resolved as shift ("!=" < '/'). | |
2114 Conflict between rule 60 and token '%' resolved as shift ("!=" < '%'). | |
2115 | |
2116 | |
2117 state 86 | |
2118 | |
2119 57 expr: expr . "&&" expr | |
2120 58 | expr . "||" expr | |
2121 59 | expr . "==" expr | |
2122 60 | expr . "!=" expr | |
2123 61 | expr . '>' expr | |
2124 62 | expr . ">=" expr ["||", "&&", ';', ')', ',', ']', ':'] | |
2125 62 | expr ">=" expr . ["||", "&&", ';', ')', ',', ']', ':'] | |
2126 63 | expr . '<' expr | |
2127 64 | expr . "<=" expr | |
2128 65 | expr . '&' expr | |
2129 66 | expr . '|' expr | |
2130 67 | expr . "<<" expr | |
2131 68 | expr . ">>" expr | |
2132 69 | expr . '-' expr | |
2133 70 | expr . '+' expr | |
2134 71 | expr . '*' expr | |
2135 72 | expr . '/' expr | |
2136 73 | expr . '%' expr | |
2137 | |
2138 "<<" shift, and go to state 56 | |
2139 ">>" shift, and go to state 57 | |
2140 '&' shift, and go to state 60 | |
2141 '|' shift, and go to state 61 | |
2142 '+' shift, and go to state 62 | |
2143 '-' shift, and go to state 63 | |
2144 '*' shift, and go to state 64 | |
2145 '/' shift, and go to state 65 | |
2146 '%' shift, and go to state 66 | |
2147 | |
2148 "==" error (nonassociative) | |
2149 "!=" error (nonassociative) | |
2150 ">=" error (nonassociative) | |
2151 "<=" error (nonassociative) | |
2152 '>' error (nonassociative) | |
2153 '<' error (nonassociative) | |
2154 | |
2155 $default reduce using rule 62 (expr) | |
2156 | |
2157 Conflict between rule 62 and token "||" resolved as reduce ("||" < ">="). | |
2158 Conflict between rule 62 and token "&&" resolved as reduce ("&&" < ">="). | |
2159 Conflict between rule 62 and token "==" resolved as an error (%nonassoc "=="). | |
2160 Conflict between rule 62 and token "!=" resolved as an error (%nonassoc "!="). | |
2161 Conflict between rule 62 and token ">=" resolved as an error (%nonassoc ">="). | |
2162 Conflict between rule 62 and token "<=" resolved as an error (%nonassoc "<="). | |
2163 Conflict between rule 62 and token "<<" resolved as shift (">=" < "<<"). | |
2164 Conflict between rule 62 and token ">>" resolved as shift (">=" < ">>"). | |
2165 Conflict between rule 62 and token '>' resolved as an error (%nonassoc '>'). | |
2166 Conflict between rule 62 and token '<' resolved as an error (%nonassoc '<'). | |
2167 Conflict between rule 62 and token '&' resolved as shift (">=" < '&'). | |
2168 Conflict between rule 62 and token '|' resolved as shift (">=" < '|'). | |
2169 Conflict between rule 62 and token '+' resolved as shift (">=" < '+'). | |
2170 Conflict between rule 62 and token '-' resolved as shift (">=" < '-'). | |
2171 Conflict between rule 62 and token '*' resolved as shift (">=" < '*'). | |
2172 Conflict between rule 62 and token '/' resolved as shift (">=" < '/'). | |
2173 Conflict between rule 62 and token '%' resolved as shift (">=" < '%'). | |
2174 | |
2175 | |
2176 state 87 | |
2177 | |
2178 57 expr: expr . "&&" expr | |
2179 58 | expr . "||" expr | |
2180 59 | expr . "==" expr | |
2181 60 | expr . "!=" expr | |
2182 61 | expr . '>' expr | |
2183 62 | expr . ">=" expr | |
2184 63 | expr . '<' expr | |
2185 64 | expr . "<=" expr ["||", "&&", ';', ')', ',', ']', ':'] | |
2186 64 | expr "<=" expr . ["||", "&&", ';', ')', ',', ']', ':'] | |
2187 65 | expr . '&' expr | |
2188 66 | expr . '|' expr | |
2189 67 | expr . "<<" expr | |
2190 68 | expr . ">>" expr | |
2191 69 | expr . '-' expr | |
2192 70 | expr . '+' expr | |
2193 71 | expr . '*' expr | |
2194 72 | expr . '/' expr | |
2195 73 | expr . '%' expr | |
2196 | |
2197 "<<" shift, and go to state 56 | |
2198 ">>" shift, and go to state 57 | |
2199 '&' shift, and go to state 60 | |
2200 '|' shift, and go to state 61 | |
2201 '+' shift, and go to state 62 | |
2202 '-' shift, and go to state 63 | |
2203 '*' shift, and go to state 64 | |
2204 '/' shift, and go to state 65 | |
2205 '%' shift, and go to state 66 | |
2206 | |
2207 "==" error (nonassociative) | |
2208 "!=" error (nonassociative) | |
2209 ">=" error (nonassociative) | |
2210 "<=" error (nonassociative) | |
2211 '>' error (nonassociative) | |
2212 '<' error (nonassociative) | |
2213 | |
2214 $default reduce using rule 64 (expr) | |
2215 | |
2216 Conflict between rule 64 and token "||" resolved as reduce ("||" < "<="). | |
2217 Conflict between rule 64 and token "&&" resolved as reduce ("&&" < "<="). | |
2218 Conflict between rule 64 and token "==" resolved as an error (%nonassoc "=="). | |
2219 Conflict between rule 64 and token "!=" resolved as an error (%nonassoc "!="). | |
2220 Conflict between rule 64 and token ">=" resolved as an error (%nonassoc ">="). | |
2221 Conflict between rule 64 and token "<=" resolved as an error (%nonassoc "<="). | |
2222 Conflict between rule 64 and token "<<" resolved as shift ("<=" < "<<"). | |
2223 Conflict between rule 64 and token ">>" resolved as shift ("<=" < ">>"). | |
2224 Conflict between rule 64 and token '>' resolved as an error (%nonassoc '>'). | |
2225 Conflict between rule 64 and token '<' resolved as an error (%nonassoc '<'). | |
2226 Conflict between rule 64 and token '&' resolved as shift ("<=" < '&'). | |
2227 Conflict between rule 64 and token '|' resolved as shift ("<=" < '|'). | |
2228 Conflict between rule 64 and token '+' resolved as shift ("<=" < '+'). | |
2229 Conflict between rule 64 and token '-' resolved as shift ("<=" < '-'). | |
2230 Conflict between rule 64 and token '*' resolved as shift ("<=" < '*'). | |
2231 Conflict between rule 64 and token '/' resolved as shift ("<=" < '/'). | |
2232 Conflict between rule 64 and token '%' resolved as shift ("<=" < '%'). | |
2233 | |
2234 | |
2235 state 88 | |
2236 | |
2237 57 expr: expr . "&&" expr | |
2238 58 | expr . "||" expr | |
2239 59 | expr . "==" expr | |
2240 60 | expr . "!=" expr | |
2241 61 | expr . '>' expr | |
2242 62 | expr . ">=" expr | |
2243 63 | expr . '<' expr | |
2244 64 | expr . "<=" expr | |
2245 65 | expr . '&' expr | |
2246 66 | expr . '|' expr | |
2247 67 | expr . "<<" expr ["||", "&&", "==", "!=", ">=", "<=", "<<", ">>", '>', '<', '&', '|', ';', ')', ',', ']', ':'] | |
2248 67 | expr "<<" expr . ["||", "&&", "==", "!=", ">=", "<=", "<<", ">>", '>', '<', '&', '|', ';', ')', ',', ']', ':'] | |
2249 68 | expr . ">>" expr | |
2250 69 | expr . '-' expr | |
2251 70 | expr . '+' expr | |
2252 71 | expr . '*' expr | |
2253 72 | expr . '/' expr | |
2254 73 | expr . '%' expr | |
2255 | |
2256 '+' shift, and go to state 62 | |
2257 '-' shift, and go to state 63 | |
2258 '*' shift, and go to state 64 | |
2259 '/' shift, and go to state 65 | |
2260 '%' shift, and go to state 66 | |
2261 | |
2262 $default reduce using rule 67 (expr) | |
2263 | |
2264 Conflict between rule 67 and token "||" resolved as reduce ("||" < "<<"). | |
2265 Conflict between rule 67 and token "&&" resolved as reduce ("&&" < "<<"). | |
2266 Conflict between rule 67 and token "==" resolved as reduce ("==" < "<<"). | |
2267 Conflict between rule 67 and token "!=" resolved as reduce ("!=" < "<<"). | |
2268 Conflict between rule 67 and token ">=" resolved as reduce (">=" < "<<"). | |
2269 Conflict between rule 67 and token "<=" resolved as reduce ("<=" < "<<"). | |
2270 Conflict between rule 67 and token "<<" resolved as reduce (%left "<<"). | |
2271 Conflict between rule 67 and token ">>" resolved as reduce (%left ">>"). | |
2272 Conflict between rule 67 and token '>' resolved as reduce ('>' < "<<"). | |
2273 Conflict between rule 67 and token '<' resolved as reduce ('<' < "<<"). | |
2274 Conflict between rule 67 and token '&' resolved as reduce ('&' < "<<"). | |
2275 Conflict between rule 67 and token '|' resolved as reduce ('|' < "<<"). | |
2276 Conflict between rule 67 and token '+' resolved as shift ("<<" < '+'). | |
2277 Conflict between rule 67 and token '-' resolved as shift ("<<" < '-'). | |
2278 Conflict between rule 67 and token '*' resolved as shift ("<<" < '*'). | |
2279 Conflict between rule 67 and token '/' resolved as shift ("<<" < '/'). | |
2280 Conflict between rule 67 and token '%' resolved as shift ("<<" < '%'). | |
2281 | |
2282 | |
2283 state 89 | |
2284 | |
2285 57 expr: expr . "&&" expr | |
2286 58 | expr . "||" expr | |
2287 59 | expr . "==" expr | |
2288 60 | expr . "!=" expr | |
2289 61 | expr . '>' expr | |
2290 62 | expr . ">=" expr | |
2291 63 | expr . '<' expr | |
2292 64 | expr . "<=" expr | |
2293 65 | expr . '&' expr | |
2294 66 | expr . '|' expr | |
2295 67 | expr . "<<" expr | |
2296 68 | expr . ">>" expr ["||", "&&", "==", "!=", ">=", "<=", "<<", ">>", '>', '<', '&', '|', ';', ')', ',', ']', ':'] | |
2297 68 | expr ">>" expr . ["||", "&&", "==", "!=", ">=", "<=", "<<", ">>", '>', '<', '&', '|', ';', ')', ',', ']', ':'] | |
2298 69 | expr . '-' expr | |
2299 70 | expr . '+' expr | |
2300 71 | expr . '*' expr | |
2301 72 | expr . '/' expr | |
2302 73 | expr . '%' expr | |
2303 | |
2304 '+' shift, and go to state 62 | |
2305 '-' shift, and go to state 63 | |
2306 '*' shift, and go to state 64 | |
2307 '/' shift, and go to state 65 | |
2308 '%' shift, and go to state 66 | |
2309 | |
2310 $default reduce using rule 68 (expr) | |
2311 | |
2312 Conflict between rule 68 and token "||" resolved as reduce ("||" < ">>"). | |
2313 Conflict between rule 68 and token "&&" resolved as reduce ("&&" < ">>"). | |
2314 Conflict between rule 68 and token "==" resolved as reduce ("==" < ">>"). | |
2315 Conflict between rule 68 and token "!=" resolved as reduce ("!=" < ">>"). | |
2316 Conflict between rule 68 and token ">=" resolved as reduce (">=" < ">>"). | |
2317 Conflict between rule 68 and token "<=" resolved as reduce ("<=" < ">>"). | |
2318 Conflict between rule 68 and token "<<" resolved as reduce (%left "<<"). | |
2319 Conflict between rule 68 and token ">>" resolved as reduce (%left ">>"). | |
2320 Conflict between rule 68 and token '>' resolved as reduce ('>' < ">>"). | |
2321 Conflict between rule 68 and token '<' resolved as reduce ('<' < ">>"). | |
2322 Conflict between rule 68 and token '&' resolved as reduce ('&' < ">>"). | |
2323 Conflict between rule 68 and token '|' resolved as reduce ('|' < ">>"). | |
2324 Conflict between rule 68 and token '+' resolved as shift (">>" < '+'). | |
2325 Conflict between rule 68 and token '-' resolved as shift (">>" < '-'). | |
2326 Conflict between rule 68 and token '*' resolved as shift (">>" < '*'). | |
2327 Conflict between rule 68 and token '/' resolved as shift (">>" < '/'). | |
2328 Conflict between rule 68 and token '%' resolved as shift (">>" < '%'). | |
2329 | |
2330 | |
2331 state 90 | |
2332 | |
2333 57 expr: expr . "&&" expr | |
2334 58 | expr . "||" expr | |
2335 59 | expr . "==" expr | |
2336 60 | expr . "!=" expr | |
2337 61 | expr . '>' expr ["||", "&&", ';', ')', ',', ']', ':'] | |
2338 61 | expr '>' expr . ["||", "&&", ';', ')', ',', ']', ':'] | |
2339 62 | expr . ">=" expr | |
2340 63 | expr . '<' expr | |
2341 64 | expr . "<=" expr | |
2342 65 | expr . '&' expr | |
2343 66 | expr . '|' expr | |
2344 67 | expr . "<<" expr | |
2345 68 | expr . ">>" expr | |
2346 69 | expr . '-' expr | |
2347 70 | expr . '+' expr | |
2348 71 | expr . '*' expr | |
2349 72 | expr . '/' expr | |
2350 73 | expr . '%' expr | |
2351 | |
2352 "<<" shift, and go to state 56 | |
2353 ">>" shift, and go to state 57 | |
2354 '&' shift, and go to state 60 | |
2355 '|' shift, and go to state 61 | |
2356 '+' shift, and go to state 62 | |
2357 '-' shift, and go to state 63 | |
2358 '*' shift, and go to state 64 | |
2359 '/' shift, and go to state 65 | |
2360 '%' shift, and go to state 66 | |
2361 | |
2362 "==" error (nonassociative) | |
2363 "!=" error (nonassociative) | |
2364 ">=" error (nonassociative) | |
2365 "<=" error (nonassociative) | |
2366 '>' error (nonassociative) | |
2367 '<' error (nonassociative) | |
2368 | |
2369 $default reduce using rule 61 (expr) | |
2370 | |
2371 Conflict between rule 61 and token "||" resolved as reduce ("||" < '>'). | |
2372 Conflict between rule 61 and token "&&" resolved as reduce ("&&" < '>'). | |
2373 Conflict between rule 61 and token "==" resolved as an error (%nonassoc "=="). | |
2374 Conflict between rule 61 and token "!=" resolved as an error (%nonassoc "!="). | |
2375 Conflict between rule 61 and token ">=" resolved as an error (%nonassoc ">="). | |
2376 Conflict between rule 61 and token "<=" resolved as an error (%nonassoc "<="). | |
2377 Conflict between rule 61 and token "<<" resolved as shift ('>' < "<<"). | |
2378 Conflict between rule 61 and token ">>" resolved as shift ('>' < ">>"). | |
2379 Conflict between rule 61 and token '>' resolved as an error (%nonassoc '>'). | |
2380 Conflict between rule 61 and token '<' resolved as an error (%nonassoc '<'). | |
2381 Conflict between rule 61 and token '&' resolved as shift ('>' < '&'). | |
2382 Conflict between rule 61 and token '|' resolved as shift ('>' < '|'). | |
2383 Conflict between rule 61 and token '+' resolved as shift ('>' < '+'). | |
2384 Conflict between rule 61 and token '-' resolved as shift ('>' < '-'). | |
2385 Conflict between rule 61 and token '*' resolved as shift ('>' < '*'). | |
2386 Conflict between rule 61 and token '/' resolved as shift ('>' < '/'). | |
2387 Conflict between rule 61 and token '%' resolved as shift ('>' < '%'). | |
2388 | |
2389 | |
2390 state 91 | |
2391 | |
2392 57 expr: expr . "&&" expr | |
2393 58 | expr . "||" expr | |
2394 59 | expr . "==" expr | |
2395 60 | expr . "!=" expr | |
2396 61 | expr . '>' expr | |
2397 62 | expr . ">=" expr | |
2398 63 | expr . '<' expr ["||", "&&", ';', ')', ',', ']', ':'] | |
2399 63 | expr '<' expr . ["||", "&&", ';', ')', ',', ']', ':'] | |
2400 64 | expr . "<=" expr | |
2401 65 | expr . '&' expr | |
2402 66 | expr . '|' expr | |
2403 67 | expr . "<<" expr | |
2404 68 | expr . ">>" expr | |
2405 69 | expr . '-' expr | |
2406 70 | expr . '+' expr | |
2407 71 | expr . '*' expr | |
2408 72 | expr . '/' expr | |
2409 73 | expr . '%' expr | |
2410 | |
2411 "<<" shift, and go to state 56 | |
2412 ">>" shift, and go to state 57 | |
2413 '&' shift, and go to state 60 | |
2414 '|' shift, and go to state 61 | |
2415 '+' shift, and go to state 62 | |
2416 '-' shift, and go to state 63 | |
2417 '*' shift, and go to state 64 | |
2418 '/' shift, and go to state 65 | |
2419 '%' shift, and go to state 66 | |
2420 | |
2421 "==" error (nonassociative) | |
2422 "!=" error (nonassociative) | |
2423 ">=" error (nonassociative) | |
2424 "<=" error (nonassociative) | |
2425 '>' error (nonassociative) | |
2426 '<' error (nonassociative) | |
2427 | |
2428 $default reduce using rule 63 (expr) | |
2429 | |
2430 Conflict between rule 63 and token "||" resolved as reduce ("||" < '<'). | |
2431 Conflict between rule 63 and token "&&" resolved as reduce ("&&" < '<'). | |
2432 Conflict between rule 63 and token "==" resolved as an error (%nonassoc "=="). | |
2433 Conflict between rule 63 and token "!=" resolved as an error (%nonassoc "!="). | |
2434 Conflict between rule 63 and token ">=" resolved as an error (%nonassoc ">="). | |
2435 Conflict between rule 63 and token "<=" resolved as an error (%nonassoc "<="). | |
2436 Conflict between rule 63 and token "<<" resolved as shift ('<' < "<<"). | |
2437 Conflict between rule 63 and token ">>" resolved as shift ('<' < ">>"). | |
2438 Conflict between rule 63 and token '>' resolved as an error (%nonassoc '>'). | |
2439 Conflict between rule 63 and token '<' resolved as an error (%nonassoc '<'). | |
2440 Conflict between rule 63 and token '&' resolved as shift ('<' < '&'). | |
2441 Conflict between rule 63 and token '|' resolved as shift ('<' < '|'). | |
2442 Conflict between rule 63 and token '+' resolved as shift ('<' < '+'). | |
2443 Conflict between rule 63 and token '-' resolved as shift ('<' < '-'). | |
2444 Conflict between rule 63 and token '*' resolved as shift ('<' < '*'). | |
2445 Conflict between rule 63 and token '/' resolved as shift ('<' < '/'). | |
2446 Conflict between rule 63 and token '%' resolved as shift ('<' < '%'). | |
2447 | |
2448 | |
2449 state 92 | |
2450 | |
2451 57 expr: expr . "&&" expr | |
2452 58 | expr . "||" expr | |
2453 59 | expr . "==" expr | |
2454 60 | expr . "!=" expr | |
2455 61 | expr . '>' expr | |
2456 62 | expr . ">=" expr | |
2457 63 | expr . '<' expr | |
2458 64 | expr . "<=" expr | |
2459 65 | expr . '&' expr ["||", "&&", "==", "!=", ">=", "<=", '>', '<', '&', '|', ';', ')', ',', ']', ':'] | |
2460 65 | expr '&' expr . ["||", "&&", "==", "!=", ">=", "<=", '>', '<', '&', '|', ';', ')', ',', ']', ':'] | |
2461 66 | expr . '|' expr | |
2462 67 | expr . "<<" expr | |
2463 68 | expr . ">>" expr | |
2464 69 | expr . '-' expr | |
2465 70 | expr . '+' expr | |
2466 71 | expr . '*' expr | |
2467 72 | expr . '/' expr | |
2468 73 | expr . '%' expr | |
2469 | |
2470 "<<" shift, and go to state 56 | |
2471 ">>" shift, and go to state 57 | |
2472 '+' shift, and go to state 62 | |
2473 '-' shift, and go to state 63 | |
2474 '*' shift, and go to state 64 | |
2475 '/' shift, and go to state 65 | |
2476 '%' shift, and go to state 66 | |
2477 | |
2478 $default reduce using rule 65 (expr) | |
2479 | |
2480 Conflict between rule 65 and token "||" resolved as reduce ("||" < '&'). | |
2481 Conflict between rule 65 and token "&&" resolved as reduce ("&&" < '&'). | |
2482 Conflict between rule 65 and token "==" resolved as reduce ("==" < '&'). | |
2483 Conflict between rule 65 and token "!=" resolved as reduce ("!=" < '&'). | |
2484 Conflict between rule 65 and token ">=" resolved as reduce (">=" < '&'). | |
2485 Conflict between rule 65 and token "<=" resolved as reduce ("<=" < '&'). | |
2486 Conflict between rule 65 and token "<<" resolved as shift ('&' < "<<"). | |
2487 Conflict between rule 65 and token ">>" resolved as shift ('&' < ">>"). | |
2488 Conflict between rule 65 and token '>' resolved as reduce ('>' < '&'). | |
2489 Conflict between rule 65 and token '<' resolved as reduce ('<' < '&'). | |
2490 Conflict between rule 65 and token '&' resolved as reduce (%left '&'). | |
2491 Conflict between rule 65 and token '|' resolved as reduce (%left '|'). | |
2492 Conflict between rule 65 and token '+' resolved as shift ('&' < '+'). | |
2493 Conflict between rule 65 and token '-' resolved as shift ('&' < '-'). | |
2494 Conflict between rule 65 and token '*' resolved as shift ('&' < '*'). | |
2495 Conflict between rule 65 and token '/' resolved as shift ('&' < '/'). | |
2496 Conflict between rule 65 and token '%' resolved as shift ('&' < '%'). | |
2497 | |
2498 | |
2499 state 93 | |
2500 | |
2501 57 expr: expr . "&&" expr | |
2502 58 | expr . "||" expr | |
2503 59 | expr . "==" expr | |
2504 60 | expr . "!=" expr | |
2505 61 | expr . '>' expr | |
2506 62 | expr . ">=" expr | |
2507 63 | expr . '<' expr | |
2508 64 | expr . "<=" expr | |
2509 65 | expr . '&' expr | |
2510 66 | expr . '|' expr ["||", "&&", "==", "!=", ">=", "<=", '>', '<', '&', '|', ';', ')', ',', ']', ':'] | |
2511 66 | expr '|' expr . ["||", "&&", "==", "!=", ">=", "<=", '>', '<', '&', '|', ';', ')', ',', ']', ':'] | |
2512 67 | expr . "<<" expr | |
2513 68 | expr . ">>" expr | |
2514 69 | expr . '-' expr | |
2515 70 | expr . '+' expr | |
2516 71 | expr . '*' expr | |
2517 72 | expr . '/' expr | |
2518 73 | expr . '%' expr | |
2519 | |
2520 "<<" shift, and go to state 56 | |
2521 ">>" shift, and go to state 57 | |
2522 '+' shift, and go to state 62 | |
2523 '-' shift, and go to state 63 | |
2524 '*' shift, and go to state 64 | |
2525 '/' shift, and go to state 65 | |
2526 '%' shift, and go to state 66 | |
2527 | |
2528 $default reduce using rule 66 (expr) | |
2529 | |
2530 Conflict between rule 66 and token "||" resolved as reduce ("||" < '|'). | |
2531 Conflict between rule 66 and token "&&" resolved as reduce ("&&" < '|'). | |
2532 Conflict between rule 66 and token "==" resolved as reduce ("==" < '|'). | |
2533 Conflict between rule 66 and token "!=" resolved as reduce ("!=" < '|'). | |
2534 Conflict between rule 66 and token ">=" resolved as reduce (">=" < '|'). | |
2535 Conflict between rule 66 and token "<=" resolved as reduce ("<=" < '|'). | |
2536 Conflict between rule 66 and token "<<" resolved as shift ('|' < "<<"). | |
2537 Conflict between rule 66 and token ">>" resolved as shift ('|' < ">>"). | |
2538 Conflict between rule 66 and token '>' resolved as reduce ('>' < '|'). | |
2539 Conflict between rule 66 and token '<' resolved as reduce ('<' < '|'). | |
2540 Conflict between rule 66 and token '&' resolved as reduce (%left '&'). | |
2541 Conflict between rule 66 and token '|' resolved as reduce (%left '|'). | |
2542 Conflict between rule 66 and token '+' resolved as shift ('|' < '+'). | |
2543 Conflict between rule 66 and token '-' resolved as shift ('|' < '-'). | |
2544 Conflict between rule 66 and token '*' resolved as shift ('|' < '*'). | |
2545 Conflict between rule 66 and token '/' resolved as shift ('|' < '/'). | |
2546 Conflict between rule 66 and token '%' resolved as shift ('|' < '%'). | |
2547 | |
2548 | |
2549 state 94 | |
2550 | |
2551 57 expr: expr . "&&" expr | |
2552 58 | expr . "||" expr | |
2553 59 | expr . "==" expr | |
2554 60 | expr . "!=" expr | |
2555 61 | expr . '>' expr | |
2556 62 | expr . ">=" expr | |
2557 63 | expr . '<' expr | |
2558 64 | expr . "<=" expr | |
2559 65 | expr . '&' expr | |
2560 66 | expr . '|' expr | |
2561 67 | expr . "<<" expr | |
2562 68 | expr . ">>" expr | |
2563 69 | expr . '-' expr | |
2564 70 | expr . '+' expr ["||", "&&", "==", "!=", ">=", "<=", "<<", ">>", '>', '<', '&', '|', '+', '-', ';', ')', ',', ']', ':'] | |
2565 70 | expr '+' expr . ["||", "&&", "==", "!=", ">=", "<=", "<<", ">>", '>', '<', '&', '|', '+', '-', ';', ')', ',', ']', ':'] | |
2566 71 | expr . '*' expr | |
2567 72 | expr . '/' expr | |
2568 73 | expr . '%' expr | |
2569 | |
2570 '*' shift, and go to state 64 | |
2571 '/' shift, and go to state 65 | |
2572 '%' shift, and go to state 66 | |
2573 | |
2574 $default reduce using rule 70 (expr) | |
2575 | |
2576 Conflict between rule 70 and token "||" resolved as reduce ("||" < '+'). | |
2577 Conflict between rule 70 and token "&&" resolved as reduce ("&&" < '+'). | |
2578 Conflict between rule 70 and token "==" resolved as reduce ("==" < '+'). | |
2579 Conflict between rule 70 and token "!=" resolved as reduce ("!=" < '+'). | |
2580 Conflict between rule 70 and token ">=" resolved as reduce (">=" < '+'). | |
2581 Conflict between rule 70 and token "<=" resolved as reduce ("<=" < '+'). | |
2582 Conflict between rule 70 and token "<<" resolved as reduce ("<<" < '+'). | |
2583 Conflict between rule 70 and token ">>" resolved as reduce (">>" < '+'). | |
2584 Conflict between rule 70 and token '>' resolved as reduce ('>' < '+'). | |
2585 Conflict between rule 70 and token '<' resolved as reduce ('<' < '+'). | |
2586 Conflict between rule 70 and token '&' resolved as reduce ('&' < '+'). | |
2587 Conflict between rule 70 and token '|' resolved as reduce ('|' < '+'). | |
2588 Conflict between rule 70 and token '+' resolved as reduce (%left '+'). | |
2589 Conflict between rule 70 and token '-' resolved as reduce (%left '-'). | |
2590 Conflict between rule 70 and token '*' resolved as shift ('+' < '*'). | |
2591 Conflict between rule 70 and token '/' resolved as shift ('+' < '/'). | |
2592 Conflict between rule 70 and token '%' resolved as shift ('+' < '%'). | |
2593 | |
2594 | |
2595 state 95 | |
2596 | |
2597 57 expr: expr . "&&" expr | |
2598 58 | expr . "||" expr | |
2599 59 | expr . "==" expr | |
2600 60 | expr . "!=" expr | |
2601 61 | expr . '>' expr | |
2602 62 | expr . ">=" expr | |
2603 63 | expr . '<' expr | |
2604 64 | expr . "<=" expr | |
2605 65 | expr . '&' expr | |
2606 66 | expr . '|' expr | |
2607 67 | expr . "<<" expr | |
2608 68 | expr . ">>" expr | |
2609 69 | expr . '-' expr ["||", "&&", "==", "!=", ">=", "<=", "<<", ">>", '>', '<', '&', '|', '+', '-', ';', ')', ',', ']', ':'] | |
2610 69 | expr '-' expr . ["||", "&&", "==", "!=", ">=", "<=", "<<", ">>", '>', '<', '&', '|', '+', '-', ';', ')', ',', ']', ':'] | |
2611 70 | expr . '+' expr | |
2612 71 | expr . '*' expr | |
2613 72 | expr . '/' expr | |
2614 73 | expr . '%' expr | |
2615 | |
2616 '*' shift, and go to state 64 | |
2617 '/' shift, and go to state 65 | |
2618 '%' shift, and go to state 66 | |
2619 | |
2620 $default reduce using rule 69 (expr) | |
2621 | |
2622 Conflict between rule 69 and token "||" resolved as reduce ("||" < '-'). | |
2623 Conflict between rule 69 and token "&&" resolved as reduce ("&&" < '-'). | |
2624 Conflict between rule 69 and token "==" resolved as reduce ("==" < '-'). | |
2625 Conflict between rule 69 and token "!=" resolved as reduce ("!=" < '-'). | |
2626 Conflict between rule 69 and token ">=" resolved as reduce (">=" < '-'). | |
2627 Conflict between rule 69 and token "<=" resolved as reduce ("<=" < '-'). | |
2628 Conflict between rule 69 and token "<<" resolved as reduce ("<<" < '-'). | |
2629 Conflict between rule 69 and token ">>" resolved as reduce (">>" < '-'). | |
2630 Conflict between rule 69 and token '>' resolved as reduce ('>' < '-'). | |
2631 Conflict between rule 69 and token '<' resolved as reduce ('<' < '-'). | |
2632 Conflict between rule 69 and token '&' resolved as reduce ('&' < '-'). | |
2633 Conflict between rule 69 and token '|' resolved as reduce ('|' < '-'). | |
2634 Conflict between rule 69 and token '+' resolved as reduce (%left '+'). | |
2635 Conflict between rule 69 and token '-' resolved as reduce (%left '-'). | |
2636 Conflict between rule 69 and token '*' resolved as shift ('-' < '*'). | |
2637 Conflict between rule 69 and token '/' resolved as shift ('-' < '/'). | |
2638 Conflict between rule 69 and token '%' resolved as shift ('-' < '%'). | |
2639 | |
2640 | |
2641 state 96 | |
2642 | |
2643 57 expr: expr . "&&" expr | |
2644 58 | expr . "||" expr | |
2645 59 | expr . "==" expr | |
2646 60 | expr . "!=" expr | |
2647 61 | expr . '>' expr | |
2648 62 | expr . ">=" expr | |
2649 63 | expr . '<' expr | |
2650 64 | expr . "<=" expr | |
2651 65 | expr . '&' expr | |
2652 66 | expr . '|' expr | |
2653 67 | expr . "<<" expr | |
2654 68 | expr . ">>" expr | |
2655 69 | expr . '-' expr | |
2656 70 | expr . '+' expr | |
2657 71 | expr . '*' expr ["||", "&&", "==", "!=", ">=", "<=", "<<", ">>", '>', '<', '&', '|', '+', '-', '*', '/', '%', ';', ')', ',', ']', ':'] | |
2658 71 | expr '*' expr . ["||", "&&", "==", "!=", ">=", "<=", "<<", ">>", '>', '<', '&', '|', '+', '-', '*', '/', '%', ';', ')', ',', ']', ':'] | |
2659 72 | expr . '/' expr | |
2660 73 | expr . '%' expr | |
2661 | |
2662 $default reduce using rule 71 (expr) | |
2663 | |
2664 Conflict between rule 71 and token "||" resolved as reduce ("||" < '*'). | |
2665 Conflict between rule 71 and token "&&" resolved as reduce ("&&" < '*'). | |
2666 Conflict between rule 71 and token "==" resolved as reduce ("==" < '*'). | |
2667 Conflict between rule 71 and token "!=" resolved as reduce ("!=" < '*'). | |
2668 Conflict between rule 71 and token ">=" resolved as reduce (">=" < '*'). | |
2669 Conflict between rule 71 and token "<=" resolved as reduce ("<=" < '*'). | |
2670 Conflict between rule 71 and token "<<" resolved as reduce ("<<" < '*'). | |
2671 Conflict between rule 71 and token ">>" resolved as reduce (">>" < '*'). | |
2672 Conflict between rule 71 and token '>' resolved as reduce ('>' < '*'). | |
2673 Conflict between rule 71 and token '<' resolved as reduce ('<' < '*'). | |
2674 Conflict between rule 71 and token '&' resolved as reduce ('&' < '*'). | |
2675 Conflict between rule 71 and token '|' resolved as reduce ('|' < '*'). | |
2676 Conflict between rule 71 and token '+' resolved as reduce ('+' < '*'). | |
2677 Conflict between rule 71 and token '-' resolved as reduce ('-' < '*'). | |
2678 Conflict between rule 71 and token '*' resolved as reduce (%left '*'). | |
2679 Conflict between rule 71 and token '/' resolved as reduce (%left '/'). | |
2680 Conflict between rule 71 and token '%' resolved as reduce (%left '%'). | |
2681 | |
2682 | |
2683 state 97 | |
2684 | |
2685 57 expr: expr . "&&" expr | |
2686 58 | expr . "||" expr | |
2687 59 | expr . "==" expr | |
2688 60 | expr . "!=" expr | |
2689 61 | expr . '>' expr | |
2690 62 | expr . ">=" expr | |
2691 63 | expr . '<' expr | |
2692 64 | expr . "<=" expr | |
2693 65 | expr . '&' expr | |
2694 66 | expr . '|' expr | |
2695 67 | expr . "<<" expr | |
2696 68 | expr . ">>" expr | |
2697 69 | expr . '-' expr | |
2698 70 | expr . '+' expr | |
2699 71 | expr . '*' expr | |
2700 72 | expr . '/' expr ["||", "&&", "==", "!=", ">=", "<=", "<<", ">>", '>', '<', '&', '|', '+', '-', '*', '/', '%', ';', ')', ',', ']', ':'] | |
2701 72 | expr '/' expr . ["||", "&&", "==", "!=", ">=", "<=", "<<", ">>", '>', '<', '&', '|', '+', '-', '*', '/', '%', ';', ')', ',', ']', ':'] | |
2702 73 | expr . '%' expr | |
2703 | |
2704 $default reduce using rule 72 (expr) | |
2705 | |
2706 Conflict between rule 72 and token "||" resolved as reduce ("||" < '/'). | |
2707 Conflict between rule 72 and token "&&" resolved as reduce ("&&" < '/'). | |
2708 Conflict between rule 72 and token "==" resolved as reduce ("==" < '/'). | |
2709 Conflict between rule 72 and token "!=" resolved as reduce ("!=" < '/'). | |
2710 Conflict between rule 72 and token ">=" resolved as reduce (">=" < '/'). | |
2711 Conflict between rule 72 and token "<=" resolved as reduce ("<=" < '/'). | |
2712 Conflict between rule 72 and token "<<" resolved as reduce ("<<" < '/'). | |
2713 Conflict between rule 72 and token ">>" resolved as reduce (">>" < '/'). | |
2714 Conflict between rule 72 and token '>' resolved as reduce ('>' < '/'). | |
2715 Conflict between rule 72 and token '<' resolved as reduce ('<' < '/'). | |
2716 Conflict between rule 72 and token '&' resolved as reduce ('&' < '/'). | |
2717 Conflict between rule 72 and token '|' resolved as reduce ('|' < '/'). | |
2718 Conflict between rule 72 and token '+' resolved as reduce ('+' < '/'). | |
2719 Conflict between rule 72 and token '-' resolved as reduce ('-' < '/'). | |
2720 Conflict between rule 72 and token '*' resolved as reduce (%left '*'). | |
2721 Conflict between rule 72 and token '/' resolved as reduce (%left '/'). | |
2722 Conflict between rule 72 and token '%' resolved as reduce (%left '%'). | |
2723 | |
2724 | |
2725 state 98 | |
2726 | |
2727 57 expr: expr . "&&" expr | |
2728 58 | expr . "||" expr | |
2729 59 | expr . "==" expr | |
2730 60 | expr . "!=" expr | |
2731 61 | expr . '>' expr | |
2732 62 | expr . ">=" expr | |
2733 63 | expr . '<' expr | |
2734 64 | expr . "<=" expr | |
2735 65 | expr . '&' expr | |
2736 66 | expr . '|' expr | |
2737 67 | expr . "<<" expr | |
2738 68 | expr . ">>" expr | |
2739 69 | expr . '-' expr | |
2740 70 | expr . '+' expr | |
2741 71 | expr . '*' expr | |
2742 72 | expr . '/' expr | |
2743 73 | expr . '%' expr ["||", "&&", "==", "!=", ">=", "<=", "<<", ">>", '>', '<', '&', '|', '+', '-', '*', '/', '%', ';', ')', ',', ']', ':'] | |
2744 73 | expr '%' expr . ["||", "&&", "==", "!=", ">=", "<=", "<<", ">>", '>', '<', '&', '|', '+', '-', '*', '/', '%', ';', ')', ',', ']', ':'] | |
2745 | |
2746 $default reduce using rule 73 (expr) | |
2747 | |
2748 Conflict between rule 73 and token "||" resolved as reduce ("||" < '%'). | |
2749 Conflict between rule 73 and token "&&" resolved as reduce ("&&" < '%'). | |
2750 Conflict between rule 73 and token "==" resolved as reduce ("==" < '%'). | |
2751 Conflict between rule 73 and token "!=" resolved as reduce ("!=" < '%'). | |
2752 Conflict between rule 73 and token ">=" resolved as reduce (">=" < '%'). | |
2753 Conflict between rule 73 and token "<=" resolved as reduce ("<=" < '%'). | |
2754 Conflict between rule 73 and token "<<" resolved as reduce ("<<" < '%'). | |
2755 Conflict between rule 73 and token ">>" resolved as reduce (">>" < '%'). | |
2756 Conflict between rule 73 and token '>' resolved as reduce ('>' < '%'). | |
2757 Conflict between rule 73 and token '<' resolved as reduce ('<' < '%'). | |
2758 Conflict between rule 73 and token '&' resolved as reduce ('&' < '%'). | |
2759 Conflict between rule 73 and token '|' resolved as reduce ('|' < '%'). | |
2760 Conflict between rule 73 and token '+' resolved as reduce ('+' < '%'). | |
2761 Conflict between rule 73 and token '-' resolved as reduce ('-' < '%'). | |
2762 Conflict between rule 73 and token '*' resolved as reduce (%left '*'). | |
2763 Conflict between rule 73 and token '/' resolved as reduce (%left '/'). | |
2764 Conflict between rule 73 and token '%' resolved as reduce (%left '%'). | |
2765 | |
2766 | |
2767 state 99 | |
2768 | |
2769 12 value_list: value_list . ',' value | |
2770 32 decls: type value_list . ';' | |
2771 | |
2772 ';' shift, and go to state 121 | |
2773 ',' shift, and go to state 21 | |
2774 | |
2775 | |
2776 state 100 | |
2777 | |
2778 38 statement: "identifier" . '(' args ')' ';' | |
2779 39 | "identifier" . '(' ')' ';' | |
2780 81 value: "identifier" . ["+=", "-=", "*=", "/=", "%=", '='] | |
2781 82 | "identifier" . '[' expr ']' | |
2782 | |
2783 '(' shift, and go to state 122 | |
2784 '[' shift, and go to state 19 | |
2785 | |
2786 $default reduce using rule 81 (value) | |
2787 | |
2788 | |
2789 state 101 | |
2790 | |
2791 45 statement: "if" . '(' expr ')' statement | |
2792 46 | "if" . '(' expr ')' statement "else" statement | |
2793 | |
2794 '(' shift, and go to state 123 | |
2795 | |
2796 | |
2797 state 102 | |
2798 | |
2799 48 statement: "while" . '(' expr ')' statement | |
2800 | |
2801 '(' shift, and go to state 124 | |
2802 | |
2803 | |
2804 state 103 | |
2805 | |
2806 47 statement: "for" . '(' assign ';' expr ';' assign ')' statement | |
2807 | |
2808 '(' shift, and go to state 125 | |
2809 | |
2810 | |
2811 state 104 | |
2812 | |
2813 49 statement: "switch" . '(' expr ')' '{' state_list '}' | |
2814 | |
2815 '(' shift, and go to state 126 | |
2816 | |
2817 | |
2818 state 105 | |
2819 | |
2820 40 statement: "case" . expr ':' | |
2821 57 expr: . expr "&&" expr | |
2822 58 | . expr "||" expr | |
2823 59 | . expr "==" expr | |
2824 60 | . expr "!=" expr | |
2825 61 | . expr '>' expr | |
2826 62 | . expr ">=" expr | |
2827 63 | . expr '<' expr | |
2828 64 | . expr "<=" expr | |
2829 65 | . expr '&' expr | |
2830 66 | . expr '|' expr | |
2831 67 | . expr "<<" expr | |
2832 68 | . expr ">>" expr | |
2833 69 | . expr '-' expr | |
2834 70 | . expr '+' expr | |
2835 71 | . expr '*' expr | |
2836 72 | . expr '/' expr | |
2837 73 | . expr '%' expr | |
2838 74 | . '-' expr | |
2839 75 | . '(' expr ')' | |
2840 76 | . value | |
2841 77 | . "ival" | |
2842 78 | . "sval" | |
2843 79 | . "identifier" '(' args ')' | |
2844 80 | . "identifier" '(' ')' | |
2845 81 value: . "identifier" | |
2846 82 | . "identifier" '[' expr ']' | |
2847 | |
2848 "ival" shift, and go to state 28 | |
2849 "identifier" shift, and go to state 29 | |
2850 "sval" shift, and go to state 30 | |
2851 '-' shift, and go to state 31 | |
2852 '(' shift, and go to state 32 | |
2853 | |
2854 expr go to state 127 | |
2855 value go to state 34 | |
2856 | |
2857 | |
2858 state 106 | |
2859 | |
2860 41 statement: "default" . ':' | |
2861 | |
2862 ':' shift, and go to state 128 | |
2863 | |
2864 | |
2865 state 107 | |
2866 | |
2867 42 statement: "break" . ';' | |
2868 | |
2869 ';' shift, and go to state 129 | |
2870 | |
2871 | |
2872 state 108 | |
2873 | |
2874 43 statement: "return" . ';' | |
2875 44 | "return" . expr ';' | |
2876 57 expr: . expr "&&" expr | |
2877 58 | . expr "||" expr | |
2878 59 | . expr "==" expr | |
2879 60 | . expr "!=" expr | |
2880 61 | . expr '>' expr | |
2881 62 | . expr ">=" expr | |
2882 63 | . expr '<' expr | |
2883 64 | . expr "<=" expr | |
2884 65 | . expr '&' expr | |
2885 66 | . expr '|' expr | |
2886 67 | . expr "<<" expr | |
2887 68 | . expr ">>" expr | |
2888 69 | . expr '-' expr | |
2889 70 | . expr '+' expr | |
2890 71 | . expr '*' expr | |
2891 72 | . expr '/' expr | |
2892 73 | . expr '%' expr | |
2893 74 | . '-' expr | |
2894 75 | . '(' expr ')' | |
2895 76 | . value | |
2896 77 | . "ival" | |
2897 78 | . "sval" | |
2898 79 | . "identifier" '(' args ')' | |
2899 80 | . "identifier" '(' ')' | |
2900 81 value: . "identifier" | |
2901 82 | . "identifier" '[' expr ']' | |
2902 | |
2903 "ival" shift, and go to state 28 | |
2904 "identifier" shift, and go to state 29 | |
2905 "sval" shift, and go to state 30 | |
2906 '-' shift, and go to state 31 | |
2907 ';' shift, and go to state 130 | |
2908 '(' shift, and go to state 32 | |
2909 | |
2910 expr go to state 131 | |
2911 value go to state 34 | |
2912 | |
2913 | |
2914 state 109 | |
2915 | |
2916 36 statement: ';' . | |
2917 | |
2918 $default reduce using rule 36 (statement) | |
2919 | |
2920 | |
2921 state 110 | |
2922 | |
2923 50 statement: block . | |
2924 | |
2925 $default reduce using rule 50 (statement) | |
2926 | |
2927 | |
2928 state 111 | |
2929 | |
2930 27 block: '{' decl_list state_list . '}' | |
2931 | |
2932 '}' shift, and go to state 132 | |
2933 | |
2934 | |
2935 state 112 | |
2936 | |
2937 27 block: . '{' decl_list state_list '}' | |
2938 31 state_list: states . ['}'] | |
2939 35 states: states . statement | |
2940 36 statement: . ';' | |
2941 37 | . assign ';' | |
2942 38 | . "identifier" '(' args ')' ';' | |
2943 39 | . "identifier" '(' ')' ';' | |
2944 40 | . "case" expr ':' | |
2945 41 | . "default" ':' | |
2946 42 | . "break" ';' | |
2947 43 | . "return" ';' | |
2948 44 | . "return" expr ';' | |
2949 45 | . "if" '(' expr ')' statement | |
2950 46 | . "if" '(' expr ')' statement "else" statement | |
2951 47 | . "for" '(' assign ';' expr ';' assign ')' statement | |
2952 48 | . "while" '(' expr ')' statement | |
2953 49 | . "switch" '(' expr ')' '{' state_list '}' | |
2954 50 | . block | |
2955 51 assign: . value '=' expr | |
2956 52 | . value "+=" expr | |
2957 53 | . value "-=" expr | |
2958 54 | . value "*=" expr | |
2959 55 | . value "/=" expr | |
2960 56 | . value "%=" expr | |
2961 81 value: . "identifier" | |
2962 82 | . "identifier" '[' expr ']' | |
2963 | |
2964 "identifier" shift, and go to state 100 | |
2965 "if" shift, and go to state 101 | |
2966 "while" shift, and go to state 102 | |
2967 "for" shift, and go to state 103 | |
2968 "switch" shift, and go to state 104 | |
2969 "case" shift, and go to state 105 | |
2970 "default" shift, and go to state 106 | |
2971 "break" shift, and go to state 107 | |
2972 "return" shift, and go to state 108 | |
2973 ';' shift, and go to state 109 | |
2974 '{' shift, and go to state 38 | |
2975 | |
2976 $default reduce using rule 31 (state_list) | |
2977 | |
2978 block go to state 110 | |
2979 statement go to state 133 | |
2980 assign go to state 114 | |
2981 value go to state 115 | |
2982 | |
2983 | |
2984 state 113 | |
2985 | |
2986 34 states: statement . | |
2987 | |
2988 $default reduce using rule 34 (states) | |
2989 | |
2990 | |
2991 state 114 | |
2992 | |
2993 37 statement: assign . ';' | |
2994 | |
2995 ';' shift, and go to state 134 | |
2996 | |
2997 | |
2998 state 115 | |
2999 | |
3000 51 assign: value . '=' expr | |
3001 52 | value . "+=" expr | |
3002 53 | value . "-=" expr | |
3003 54 | value . "*=" expr | |
3004 55 | value . "/=" expr | |
3005 56 | value . "%=" expr | |
3006 | |
3007 "+=" shift, and go to state 135 | |
3008 "-=" shift, and go to state 136 | |
3009 "*=" shift, and go to state 137 | |
3010 "/=" shift, and go to state 138 | |
3011 "%=" shift, and go to state 139 | |
3012 '=' shift, and go to state 140 | |
3013 | |
3014 | |
3015 state 116 | |
3016 | |
3017 11 value_list: . value | |
3018 12 | . value_list ',' value | |
3019 33 decls: decls type . value_list ';' | |
3020 81 value: . "identifier" | |
3021 82 | . "identifier" '[' expr ']' | |
3022 | |
3023 "identifier" shift, and go to state 35 | |
3024 | |
3025 value_list go to state 141 | |
3026 value go to state 16 | |
3027 | |
3028 | |
3029 state 117 | |
3030 | |
3031 19 arg: type "identifier" '[' ']' . | |
3032 | |
3033 $default reduce using rule 19 (arg) | |
3034 | |
3035 | |
3036 state 118 | |
3037 | |
3038 20 arg: type '&' "identifier" '[' . ']' | |
3039 | |
3040 ']' shift, and go to state 142 | |
3041 | |
3042 | |
3043 state 119 | |
3044 | |
3045 79 expr: "identifier" '(' args ')' . | |
3046 | |
3047 $default reduce using rule 79 (expr) | |
3048 | |
3049 | |
3050 state 120 | |
3051 | |
3052 57 expr: . expr "&&" expr | |
3053 58 | . expr "||" expr | |
3054 59 | . expr "==" expr | |
3055 60 | . expr "!=" expr | |
3056 61 | . expr '>' expr | |
3057 62 | . expr ">=" expr | |
3058 63 | . expr '<' expr | |
3059 64 | . expr "<=" expr | |
3060 65 | . expr '&' expr | |
3061 66 | . expr '|' expr | |
3062 67 | . expr "<<" expr | |
3063 68 | . expr ">>" expr | |
3064 69 | . expr '-' expr | |
3065 70 | . expr '+' expr | |
3066 71 | . expr '*' expr | |
3067 72 | . expr '/' expr | |
3068 73 | . expr '%' expr | |
3069 74 | . '-' expr | |
3070 75 | . '(' expr ')' | |
3071 76 | . value | |
3072 77 | . "ival" | |
3073 78 | . "sval" | |
3074 79 | . "identifier" '(' args ')' | |
3075 80 | . "identifier" '(' ')' | |
3076 81 value: . "identifier" | |
3077 82 | . "identifier" '[' expr ']' | |
3078 84 args: args ',' . expr | |
3079 | |
3080 "ival" shift, and go to state 28 | |
3081 "identifier" shift, and go to state 29 | |
3082 "sval" shift, and go to state 30 | |
3083 '-' shift, and go to state 31 | |
3084 '(' shift, and go to state 32 | |
3085 | |
3086 expr go to state 143 | |
3087 value go to state 34 | |
3088 | |
3089 | |
3090 state 121 | |
3091 | |
3092 32 decls: type value_list ';' . | |
3093 | |
3094 $default reduce using rule 32 (decls) | |
3095 | |
3096 | |
3097 state 122 | |
3098 | |
3099 38 statement: "identifier" '(' . args ')' ';' | |
3100 39 | "identifier" '(' . ')' ';' | |
3101 57 expr: . expr "&&" expr | |
3102 58 | . expr "||" expr | |
3103 59 | . expr "==" expr | |
3104 60 | . expr "!=" expr | |
3105 61 | . expr '>' expr | |
3106 62 | . expr ">=" expr | |
3107 63 | . expr '<' expr | |
3108 64 | . expr "<=" expr | |
3109 65 | . expr '&' expr | |
3110 66 | . expr '|' expr | |
3111 67 | . expr "<<" expr | |
3112 68 | . expr ">>" expr | |
3113 69 | . expr '-' expr | |
3114 70 | . expr '+' expr | |
3115 71 | . expr '*' expr | |
3116 72 | . expr '/' expr | |
3117 73 | . expr '%' expr | |
3118 74 | . '-' expr | |
3119 75 | . '(' expr ')' | |
3120 76 | . value | |
3121 77 | . "ival" | |
3122 78 | . "sval" | |
3123 79 | . "identifier" '(' args ')' | |
3124 80 | . "identifier" '(' ')' | |
3125 81 value: . "identifier" | |
3126 82 | . "identifier" '[' expr ']' | |
3127 83 args: . expr | |
3128 84 | . args ',' expr | |
3129 | |
3130 "ival" shift, and go to state 28 | |
3131 "identifier" shift, and go to state 29 | |
3132 "sval" shift, and go to state 30 | |
3133 '-' shift, and go to state 31 | |
3134 '(' shift, and go to state 32 | |
3135 ')' shift, and go to state 144 | |
3136 | |
3137 expr go to state 79 | |
3138 value go to state 34 | |
3139 args go to state 145 | |
3140 | |
3141 | |
3142 state 123 | |
3143 | |
3144 45 statement: "if" '(' . expr ')' statement | |
3145 46 | "if" '(' . expr ')' statement "else" statement | |
3146 57 expr: . expr "&&" expr | |
3147 58 | . expr "||" expr | |
3148 59 | . expr "==" expr | |
3149 60 | . expr "!=" expr | |
3150 61 | . expr '>' expr | |
3151 62 | . expr ">=" expr | |
3152 63 | . expr '<' expr | |
3153 64 | . expr "<=" expr | |
3154 65 | . expr '&' expr | |
3155 66 | . expr '|' expr | |
3156 67 | . expr "<<" expr | |
3157 68 | . expr ">>" expr | |
3158 69 | . expr '-' expr | |
3159 70 | . expr '+' expr | |
3160 71 | . expr '*' expr | |
3161 72 | . expr '/' expr | |
3162 73 | . expr '%' expr | |
3163 74 | . '-' expr | |
3164 75 | . '(' expr ')' | |
3165 76 | . value | |
3166 77 | . "ival" | |
3167 78 | . "sval" | |
3168 79 | . "identifier" '(' args ')' | |
3169 80 | . "identifier" '(' ')' | |
3170 81 value: . "identifier" | |
3171 82 | . "identifier" '[' expr ']' | |
3172 | |
3173 "ival" shift, and go to state 28 | |
3174 "identifier" shift, and go to state 29 | |
3175 "sval" shift, and go to state 30 | |
3176 '-' shift, and go to state 31 | |
3177 '(' shift, and go to state 32 | |
3178 | |
3179 expr go to state 146 | |
3180 value go to state 34 | |
3181 | |
3182 | |
3183 state 124 | |
3184 | |
3185 48 statement: "while" '(' . expr ')' statement | |
3186 57 expr: . expr "&&" expr | |
3187 58 | . expr "||" expr | |
3188 59 | . expr "==" expr | |
3189 60 | . expr "!=" expr | |
3190 61 | . expr '>' expr | |
3191 62 | . expr ">=" expr | |
3192 63 | . expr '<' expr | |
3193 64 | . expr "<=" expr | |
3194 65 | . expr '&' expr | |
3195 66 | . expr '|' expr | |
3196 67 | . expr "<<" expr | |
3197 68 | . expr ">>" expr | |
3198 69 | . expr '-' expr | |
3199 70 | . expr '+' expr | |
3200 71 | . expr '*' expr | |
3201 72 | . expr '/' expr | |
3202 73 | . expr '%' expr | |
3203 74 | . '-' expr | |
3204 75 | . '(' expr ')' | |
3205 76 | . value | |
3206 77 | . "ival" | |
3207 78 | . "sval" | |
3208 79 | . "identifier" '(' args ')' | |
3209 80 | . "identifier" '(' ')' | |
3210 81 value: . "identifier" | |
3211 82 | . "identifier" '[' expr ']' | |
3212 | |
3213 "ival" shift, and go to state 28 | |
3214 "identifier" shift, and go to state 29 | |
3215 "sval" shift, and go to state 30 | |
3216 '-' shift, and go to state 31 | |
3217 '(' shift, and go to state 32 | |
3218 | |
3219 expr go to state 147 | |
3220 value go to state 34 | |
3221 | |
3222 | |
3223 state 125 | |
3224 | |
3225 47 statement: "for" '(' . assign ';' expr ';' assign ')' statement | |
3226 51 assign: . value '=' expr | |
3227 52 | . value "+=" expr | |
3228 53 | . value "-=" expr | |
3229 54 | . value "*=" expr | |
3230 55 | . value "/=" expr | |
3231 56 | . value "%=" expr | |
3232 81 value: . "identifier" | |
3233 82 | . "identifier" '[' expr ']' | |
3234 | |
3235 "identifier" shift, and go to state 35 | |
3236 | |
3237 assign go to state 148 | |
3238 value go to state 115 | |
3239 | |
3240 | |
3241 state 126 | |
3242 | |
3243 49 statement: "switch" '(' . expr ')' '{' state_list '}' | |
3244 57 expr: . expr "&&" expr | |
3245 58 | . expr "||" expr | |
3246 59 | . expr "==" expr | |
3247 60 | . expr "!=" expr | |
3248 61 | . expr '>' expr | |
3249 62 | . expr ">=" expr | |
3250 63 | . expr '<' expr | |
3251 64 | . expr "<=" expr | |
3252 65 | . expr '&' expr | |
3253 66 | . expr '|' expr | |
3254 67 | . expr "<<" expr | |
3255 68 | . expr ">>" expr | |
3256 69 | . expr '-' expr | |
3257 70 | . expr '+' expr | |
3258 71 | . expr '*' expr | |
3259 72 | . expr '/' expr | |
3260 73 | . expr '%' expr | |
3261 74 | . '-' expr | |
3262 75 | . '(' expr ')' | |
3263 76 | . value | |
3264 77 | . "ival" | |
3265 78 | . "sval" | |
3266 79 | . "identifier" '(' args ')' | |
3267 80 | . "identifier" '(' ')' | |
3268 81 value: . "identifier" | |
3269 82 | . "identifier" '[' expr ']' | |
3270 | |
3271 "ival" shift, and go to state 28 | |
3272 "identifier" shift, and go to state 29 | |
3273 "sval" shift, and go to state 30 | |
3274 '-' shift, and go to state 31 | |
3275 '(' shift, and go to state 32 | |
3276 | |
3277 expr go to state 149 | |
3278 value go to state 34 | |
3279 | |
3280 | |
3281 state 127 | |
3282 | |
3283 40 statement: "case" expr . ':' | |
3284 57 expr: expr . "&&" expr | |
3285 58 | expr . "||" expr | |
3286 59 | expr . "==" expr | |
3287 60 | expr . "!=" expr | |
3288 61 | expr . '>' expr | |
3289 62 | expr . ">=" expr | |
3290 63 | expr . '<' expr | |
3291 64 | expr . "<=" expr | |
3292 65 | expr . '&' expr | |
3293 66 | expr . '|' expr | |
3294 67 | expr . "<<" expr | |
3295 68 | expr . ">>" expr | |
3296 69 | expr . '-' expr | |
3297 70 | expr . '+' expr | |
3298 71 | expr . '*' expr | |
3299 72 | expr . '/' expr | |
3300 73 | expr . '%' expr | |
3301 | |
3302 "||" shift, and go to state 50 | |
3303 "&&" shift, and go to state 51 | |
3304 "==" shift, and go to state 52 | |
3305 "!=" shift, and go to state 53 | |
3306 ">=" shift, and go to state 54 | |
3307 "<=" shift, and go to state 55 | |
3308 "<<" shift, and go to state 56 | |
3309 ">>" shift, and go to state 57 | |
3310 '>' shift, and go to state 58 | |
3311 '<' shift, and go to state 59 | |
3312 '&' shift, and go to state 60 | |
3313 '|' shift, and go to state 61 | |
3314 '+' shift, and go to state 62 | |
3315 '-' shift, and go to state 63 | |
3316 '*' shift, and go to state 64 | |
3317 '/' shift, and go to state 65 | |
3318 '%' shift, and go to state 66 | |
3319 ':' shift, and go to state 150 | |
3320 | |
3321 | |
3322 state 128 | |
3323 | |
3324 41 statement: "default" ':' . | |
3325 | |
3326 $default reduce using rule 41 (statement) | |
3327 | |
3328 | |
3329 state 129 | |
3330 | |
3331 42 statement: "break" ';' . | |
3332 | |
3333 $default reduce using rule 42 (statement) | |
3334 | |
3335 | |
3336 state 130 | |
3337 | |
3338 43 statement: "return" ';' . | |
3339 | |
3340 $default reduce using rule 43 (statement) | |
3341 | |
3342 | |
3343 state 131 | |
3344 | |
3345 44 statement: "return" expr . ';' | |
3346 57 expr: expr . "&&" expr | |
3347 58 | expr . "||" expr | |
3348 59 | expr . "==" expr | |
3349 60 | expr . "!=" expr | |
3350 61 | expr . '>' expr | |
3351 62 | expr . ">=" expr | |
3352 63 | expr . '<' expr | |
3353 64 | expr . "<=" expr | |
3354 65 | expr . '&' expr | |
3355 66 | expr . '|' expr | |
3356 67 | expr . "<<" expr | |
3357 68 | expr . ">>" expr | |
3358 69 | expr . '-' expr | |
3359 70 | expr . '+' expr | |
3360 71 | expr . '*' expr | |
3361 72 | expr . '/' expr | |
3362 73 | expr . '%' expr | |
3363 | |
3364 "||" shift, and go to state 50 | |
3365 "&&" shift, and go to state 51 | |
3366 "==" shift, and go to state 52 | |
3367 "!=" shift, and go to state 53 | |
3368 ">=" shift, and go to state 54 | |
3369 "<=" shift, and go to state 55 | |
3370 "<<" shift, and go to state 56 | |
3371 ">>" shift, and go to state 57 | |
3372 '>' shift, and go to state 58 | |
3373 '<' shift, and go to state 59 | |
3374 '&' shift, and go to state 60 | |
3375 '|' shift, and go to state 61 | |
3376 '+' shift, and go to state 62 | |
3377 '-' shift, and go to state 63 | |
3378 '*' shift, and go to state 64 | |
3379 '/' shift, and go to state 65 | |
3380 '%' shift, and go to state 66 | |
3381 ';' shift, and go to state 151 | |
3382 | |
3383 | |
3384 state 132 | |
3385 | |
3386 27 block: '{' decl_list state_list '}' . | |
3387 | |
3388 $default reduce using rule 27 (block) | |
3389 | |
3390 | |
3391 state 133 | |
3392 | |
3393 35 states: states statement . | |
3394 | |
3395 $default reduce using rule 35 (states) | |
3396 | |
3397 | |
3398 state 134 | |
3399 | |
3400 37 statement: assign ';' . | |
3401 | |
3402 $default reduce using rule 37 (statement) | |
3403 | |
3404 | |
3405 state 135 | |
3406 | |
3407 52 assign: value "+=" . expr | |
3408 57 expr: . expr "&&" expr | |
3409 58 | . expr "||" expr | |
3410 59 | . expr "==" expr | |
3411 60 | . expr "!=" expr | |
3412 61 | . expr '>' expr | |
3413 62 | . expr ">=" expr | |
3414 63 | . expr '<' expr | |
3415 64 | . expr "<=" expr | |
3416 65 | . expr '&' expr | |
3417 66 | . expr '|' expr | |
3418 67 | . expr "<<" expr | |
3419 68 | . expr ">>" expr | |
3420 69 | . expr '-' expr | |
3421 70 | . expr '+' expr | |
3422 71 | . expr '*' expr | |
3423 72 | . expr '/' expr | |
3424 73 | . expr '%' expr | |
3425 74 | . '-' expr | |
3426 75 | . '(' expr ')' | |
3427 76 | . value | |
3428 77 | . "ival" | |
3429 78 | . "sval" | |
3430 79 | . "identifier" '(' args ')' | |
3431 80 | . "identifier" '(' ')' | |
3432 81 value: . "identifier" | |
3433 82 | . "identifier" '[' expr ']' | |
3434 | |
3435 "ival" shift, and go to state 28 | |
3436 "identifier" shift, and go to state 29 | |
3437 "sval" shift, and go to state 30 | |
3438 '-' shift, and go to state 31 | |
3439 '(' shift, and go to state 32 | |
3440 | |
3441 expr go to state 152 | |
3442 value go to state 34 | |
3443 | |
3444 | |
3445 state 136 | |
3446 | |
3447 53 assign: value "-=" . expr | |
3448 57 expr: . expr "&&" expr | |
3449 58 | . expr "||" expr | |
3450 59 | . expr "==" expr | |
3451 60 | . expr "!=" expr | |
3452 61 | . expr '>' expr | |
3453 62 | . expr ">=" expr | |
3454 63 | . expr '<' expr | |
3455 64 | . expr "<=" expr | |
3456 65 | . expr '&' expr | |
3457 66 | . expr '|' expr | |
3458 67 | . expr "<<" expr | |
3459 68 | . expr ">>" expr | |
3460 69 | . expr '-' expr | |
3461 70 | . expr '+' expr | |
3462 71 | . expr '*' expr | |
3463 72 | . expr '/' expr | |
3464 73 | . expr '%' expr | |
3465 74 | . '-' expr | |
3466 75 | . '(' expr ')' | |
3467 76 | . value | |
3468 77 | . "ival" | |
3469 78 | . "sval" | |
3470 79 | . "identifier" '(' args ')' | |
3471 80 | . "identifier" '(' ')' | |
3472 81 value: . "identifier" | |
3473 82 | . "identifier" '[' expr ']' | |
3474 | |
3475 "ival" shift, and go to state 28 | |
3476 "identifier" shift, and go to state 29 | |
3477 "sval" shift, and go to state 30 | |
3478 '-' shift, and go to state 31 | |
3479 '(' shift, and go to state 32 | |
3480 | |
3481 expr go to state 153 | |
3482 value go to state 34 | |
3483 | |
3484 | |
3485 state 137 | |
3486 | |
3487 54 assign: value "*=" . expr | |
3488 57 expr: . expr "&&" expr | |
3489 58 | . expr "||" expr | |
3490 59 | . expr "==" expr | |
3491 60 | . expr "!=" expr | |
3492 61 | . expr '>' expr | |
3493 62 | . expr ">=" expr | |
3494 63 | . expr '<' expr | |
3495 64 | . expr "<=" expr | |
3496 65 | . expr '&' expr | |
3497 66 | . expr '|' expr | |
3498 67 | . expr "<<" expr | |
3499 68 | . expr ">>" expr | |
3500 69 | . expr '-' expr | |
3501 70 | . expr '+' expr | |
3502 71 | . expr '*' expr | |
3503 72 | . expr '/' expr | |
3504 73 | . expr '%' expr | |
3505 74 | . '-' expr | |
3506 75 | . '(' expr ')' | |
3507 76 | . value | |
3508 77 | . "ival" | |
3509 78 | . "sval" | |
3510 79 | . "identifier" '(' args ')' | |
3511 80 | . "identifier" '(' ')' | |
3512 81 value: . "identifier" | |
3513 82 | . "identifier" '[' expr ']' | |
3514 | |
3515 "ival" shift, and go to state 28 | |
3516 "identifier" shift, and go to state 29 | |
3517 "sval" shift, and go to state 30 | |
3518 '-' shift, and go to state 31 | |
3519 '(' shift, and go to state 32 | |
3520 | |
3521 expr go to state 154 | |
3522 value go to state 34 | |
3523 | |
3524 | |
3525 state 138 | |
3526 | |
3527 55 assign: value "/=" . expr | |
3528 57 expr: . expr "&&" expr | |
3529 58 | . expr "||" expr | |
3530 59 | . expr "==" expr | |
3531 60 | . expr "!=" expr | |
3532 61 | . expr '>' expr | |
3533 62 | . expr ">=" expr | |
3534 63 | . expr '<' expr | |
3535 64 | . expr "<=" expr | |
3536 65 | . expr '&' expr | |
3537 66 | . expr '|' expr | |
3538 67 | . expr "<<" expr | |
3539 68 | . expr ">>" expr | |
3540 69 | . expr '-' expr | |
3541 70 | . expr '+' expr | |
3542 71 | . expr '*' expr | |
3543 72 | . expr '/' expr | |
3544 73 | . expr '%' expr | |
3545 74 | . '-' expr | |
3546 75 | . '(' expr ')' | |
3547 76 | . value | |
3548 77 | . "ival" | |
3549 78 | . "sval" | |
3550 79 | . "identifier" '(' args ')' | |
3551 80 | . "identifier" '(' ')' | |
3552 81 value: . "identifier" | |
3553 82 | . "identifier" '[' expr ']' | |
3554 | |
3555 "ival" shift, and go to state 28 | |
3556 "identifier" shift, and go to state 29 | |
3557 "sval" shift, and go to state 30 | |
3558 '-' shift, and go to state 31 | |
3559 '(' shift, and go to state 32 | |
3560 | |
3561 expr go to state 155 | |
3562 value go to state 34 | |
3563 | |
3564 | |
3565 state 139 | |
3566 | |
3567 56 assign: value "%=" . expr | |
3568 57 expr: . expr "&&" expr | |
3569 58 | . expr "||" expr | |
3570 59 | . expr "==" expr | |
3571 60 | . expr "!=" expr | |
3572 61 | . expr '>' expr | |
3573 62 | . expr ">=" expr | |
3574 63 | . expr '<' expr | |
3575 64 | . expr "<=" expr | |
3576 65 | . expr '&' expr | |
3577 66 | . expr '|' expr | |
3578 67 | . expr "<<" expr | |
3579 68 | . expr ">>" expr | |
3580 69 | . expr '-' expr | |
3581 70 | . expr '+' expr | |
3582 71 | . expr '*' expr | |
3583 72 | . expr '/' expr | |
3584 73 | . expr '%' expr | |
3585 74 | . '-' expr | |
3586 75 | . '(' expr ')' | |
3587 76 | . value | |
3588 77 | . "ival" | |
3589 78 | . "sval" | |
3590 79 | . "identifier" '(' args ')' | |
3591 80 | . "identifier" '(' ')' | |
3592 81 value: . "identifier" | |
3593 82 | . "identifier" '[' expr ']' | |
3594 | |
3595 "ival" shift, and go to state 28 | |
3596 "identifier" shift, and go to state 29 | |
3597 "sval" shift, and go to state 30 | |
3598 '-' shift, and go to state 31 | |
3599 '(' shift, and go to state 32 | |
3600 | |
3601 expr go to state 156 | |
3602 value go to state 34 | |
3603 | |
3604 | |
3605 state 140 | |
3606 | |
3607 51 assign: value '=' . expr | |
3608 57 expr: . expr "&&" expr | |
3609 58 | . expr "||" expr | |
3610 59 | . expr "==" expr | |
3611 60 | . expr "!=" expr | |
3612 61 | . expr '>' expr | |
3613 62 | . expr ">=" expr | |
3614 63 | . expr '<' expr | |
3615 64 | . expr "<=" expr | |
3616 65 | . expr '&' expr | |
3617 66 | . expr '|' expr | |
3618 67 | . expr "<<" expr | |
3619 68 | . expr ">>" expr | |
3620 69 | . expr '-' expr | |
3621 70 | . expr '+' expr | |
3622 71 | . expr '*' expr | |
3623 72 | . expr '/' expr | |
3624 73 | . expr '%' expr | |
3625 74 | . '-' expr | |
3626 75 | . '(' expr ')' | |
3627 76 | . value | |
3628 77 | . "ival" | |
3629 78 | . "sval" | |
3630 79 | . "identifier" '(' args ')' | |
3631 80 | . "identifier" '(' ')' | |
3632 81 value: . "identifier" | |
3633 82 | . "identifier" '[' expr ']' | |
3634 | |
3635 "ival" shift, and go to state 28 | |
3636 "identifier" shift, and go to state 29 | |
3637 "sval" shift, and go to state 30 | |
3638 '-' shift, and go to state 31 | |
3639 '(' shift, and go to state 32 | |
3640 | |
3641 expr go to state 157 | |
3642 value go to state 34 | |
3643 | |
3644 | |
3645 state 141 | |
3646 | |
3647 12 value_list: value_list . ',' value | |
3648 33 decls: decls type value_list . ';' | |
3649 | |
3650 ';' shift, and go to state 158 | |
3651 ',' shift, and go to state 21 | |
3652 | |
3653 | |
3654 state 142 | |
3655 | |
3656 20 arg: type '&' "identifier" '[' ']' . | |
3657 | |
3658 $default reduce using rule 20 (arg) | |
3659 | |
3660 | |
3661 state 143 | |
3662 | |
3663 57 expr: expr . "&&" expr | |
3664 58 | expr . "||" expr | |
3665 59 | expr . "==" expr | |
3666 60 | expr . "!=" expr | |
3667 61 | expr . '>' expr | |
3668 62 | expr . ">=" expr | |
3669 63 | expr . '<' expr | |
3670 64 | expr . "<=" expr | |
3671 65 | expr . '&' expr | |
3672 66 | expr . '|' expr | |
3673 67 | expr . "<<" expr | |
3674 68 | expr . ">>" expr | |
3675 69 | expr . '-' expr | |
3676 70 | expr . '+' expr | |
3677 71 | expr . '*' expr | |
3678 72 | expr . '/' expr | |
3679 73 | expr . '%' expr | |
3680 84 args: args ',' expr . [')', ','] | |
3681 | |
3682 "||" shift, and go to state 50 | |
3683 "&&" shift, and go to state 51 | |
3684 "==" shift, and go to state 52 | |
3685 "!=" shift, and go to state 53 | |
3686 ">=" shift, and go to state 54 | |
3687 "<=" shift, and go to state 55 | |
3688 "<<" shift, and go to state 56 | |
3689 ">>" shift, and go to state 57 | |
3690 '>' shift, and go to state 58 | |
3691 '<' shift, and go to state 59 | |
3692 '&' shift, and go to state 60 | |
3693 '|' shift, and go to state 61 | |
3694 '+' shift, and go to state 62 | |
3695 '-' shift, and go to state 63 | |
3696 '*' shift, and go to state 64 | |
3697 '/' shift, and go to state 65 | |
3698 '%' shift, and go to state 66 | |
3699 | |
3700 $default reduce using rule 84 (args) | |
3701 | |
3702 | |
3703 state 144 | |
3704 | |
3705 39 statement: "identifier" '(' ')' . ';' | |
3706 | |
3707 ';' shift, and go to state 159 | |
3708 | |
3709 | |
3710 state 145 | |
3711 | |
3712 38 statement: "identifier" '(' args . ')' ';' | |
3713 84 args: args . ',' expr | |
3714 | |
3715 ')' shift, and go to state 160 | |
3716 ',' shift, and go to state 120 | |
3717 | |
3718 | |
3719 state 146 | |
3720 | |
3721 45 statement: "if" '(' expr . ')' statement | |
3722 46 | "if" '(' expr . ')' statement "else" statement | |
3723 57 expr: expr . "&&" expr | |
3724 58 | expr . "||" expr | |
3725 59 | expr . "==" expr | |
3726 60 | expr . "!=" expr | |
3727 61 | expr . '>' expr | |
3728 62 | expr . ">=" expr | |
3729 63 | expr . '<' expr | |
3730 64 | expr . "<=" expr | |
3731 65 | expr . '&' expr | |
3732 66 | expr . '|' expr | |
3733 67 | expr . "<<" expr | |
3734 68 | expr . ">>" expr | |
3735 69 | expr . '-' expr | |
3736 70 | expr . '+' expr | |
3737 71 | expr . '*' expr | |
3738 72 | expr . '/' expr | |
3739 73 | expr . '%' expr | |
3740 | |
3741 "||" shift, and go to state 50 | |
3742 "&&" shift, and go to state 51 | |
3743 "==" shift, and go to state 52 | |
3744 "!=" shift, and go to state 53 | |
3745 ">=" shift, and go to state 54 | |
3746 "<=" shift, and go to state 55 | |
3747 "<<" shift, and go to state 56 | |
3748 ">>" shift, and go to state 57 | |
3749 '>' shift, and go to state 58 | |
3750 '<' shift, and go to state 59 | |
3751 '&' shift, and go to state 60 | |
3752 '|' shift, and go to state 61 | |
3753 '+' shift, and go to state 62 | |
3754 '-' shift, and go to state 63 | |
3755 '*' shift, and go to state 64 | |
3756 '/' shift, and go to state 65 | |
3757 '%' shift, and go to state 66 | |
3758 ')' shift, and go to state 161 | |
3759 | |
3760 | |
3761 state 147 | |
3762 | |
3763 48 statement: "while" '(' expr . ')' statement | |
3764 57 expr: expr . "&&" expr | |
3765 58 | expr . "||" expr | |
3766 59 | expr . "==" expr | |
3767 60 | expr . "!=" expr | |
3768 61 | expr . '>' expr | |
3769 62 | expr . ">=" expr | |
3770 63 | expr . '<' expr | |
3771 64 | expr . "<=" expr | |
3772 65 | expr . '&' expr | |
3773 66 | expr . '|' expr | |
3774 67 | expr . "<<" expr | |
3775 68 | expr . ">>" expr | |
3776 69 | expr . '-' expr | |
3777 70 | expr . '+' expr | |
3778 71 | expr . '*' expr | |
3779 72 | expr . '/' expr | |
3780 73 | expr . '%' expr | |
3781 | |
3782 "||" shift, and go to state 50 | |
3783 "&&" shift, and go to state 51 | |
3784 "==" shift, and go to state 52 | |
3785 "!=" shift, and go to state 53 | |
3786 ">=" shift, and go to state 54 | |
3787 "<=" shift, and go to state 55 | |
3788 "<<" shift, and go to state 56 | |
3789 ">>" shift, and go to state 57 | |
3790 '>' shift, and go to state 58 | |
3791 '<' shift, and go to state 59 | |
3792 '&' shift, and go to state 60 | |
3793 '|' shift, and go to state 61 | |
3794 '+' shift, and go to state 62 | |
3795 '-' shift, and go to state 63 | |
3796 '*' shift, and go to state 64 | |
3797 '/' shift, and go to state 65 | |
3798 '%' shift, and go to state 66 | |
3799 ')' shift, and go to state 162 | |
3800 | |
3801 | |
3802 state 148 | |
3803 | |
3804 47 statement: "for" '(' assign . ';' expr ';' assign ')' statement | |
3805 | |
3806 ';' shift, and go to state 163 | |
3807 | |
3808 | |
3809 state 149 | |
3810 | |
3811 49 statement: "switch" '(' expr . ')' '{' state_list '}' | |
3812 57 expr: expr . "&&" expr | |
3813 58 | expr . "||" expr | |
3814 59 | expr . "==" expr | |
3815 60 | expr . "!=" expr | |
3816 61 | expr . '>' expr | |
3817 62 | expr . ">=" expr | |
3818 63 | expr . '<' expr | |
3819 64 | expr . "<=" expr | |
3820 65 | expr . '&' expr | |
3821 66 | expr . '|' expr | |
3822 67 | expr . "<<" expr | |
3823 68 | expr . ">>" expr | |
3824 69 | expr . '-' expr | |
3825 70 | expr . '+' expr | |
3826 71 | expr . '*' expr | |
3827 72 | expr . '/' expr | |
3828 73 | expr . '%' expr | |
3829 | |
3830 "||" shift, and go to state 50 | |
3831 "&&" shift, and go to state 51 | |
3832 "==" shift, and go to state 52 | |
3833 "!=" shift, and go to state 53 | |
3834 ">=" shift, and go to state 54 | |
3835 "<=" shift, and go to state 55 | |
3836 "<<" shift, and go to state 56 | |
3837 ">>" shift, and go to state 57 | |
3838 '>' shift, and go to state 58 | |
3839 '<' shift, and go to state 59 | |
3840 '&' shift, and go to state 60 | |
3841 '|' shift, and go to state 61 | |
3842 '+' shift, and go to state 62 | |
3843 '-' shift, and go to state 63 | |
3844 '*' shift, and go to state 64 | |
3845 '/' shift, and go to state 65 | |
3846 '%' shift, and go to state 66 | |
3847 ')' shift, and go to state 164 | |
3848 | |
3849 | |
3850 state 150 | |
3851 | |
3852 40 statement: "case" expr ':' . | |
3853 | |
3854 $default reduce using rule 40 (statement) | |
3855 | |
3856 | |
3857 state 151 | |
3858 | |
3859 44 statement: "return" expr ';' . | |
3860 | |
3861 $default reduce using rule 44 (statement) | |
3862 | |
3863 | |
3864 state 152 | |
3865 | |
3866 52 assign: value "+=" expr . [';', ')'] | |
3867 57 expr: expr . "&&" expr | |
3868 58 | expr . "||" expr | |
3869 59 | expr . "==" expr | |
3870 60 | expr . "!=" expr | |
3871 61 | expr . '>' expr | |
3872 62 | expr . ">=" expr | |
3873 63 | expr . '<' expr | |
3874 64 | expr . "<=" expr | |
3875 65 | expr . '&' expr | |
3876 66 | expr . '|' expr | |
3877 67 | expr . "<<" expr | |
3878 68 | expr . ">>" expr | |
3879 69 | expr . '-' expr | |
3880 70 | expr . '+' expr | |
3881 71 | expr . '*' expr | |
3882 72 | expr . '/' expr | |
3883 73 | expr . '%' expr | |
3884 | |
3885 "||" shift, and go to state 50 | |
3886 "&&" shift, and go to state 51 | |
3887 "==" shift, and go to state 52 | |
3888 "!=" shift, and go to state 53 | |
3889 ">=" shift, and go to state 54 | |
3890 "<=" shift, and go to state 55 | |
3891 "<<" shift, and go to state 56 | |
3892 ">>" shift, and go to state 57 | |
3893 '>' shift, and go to state 58 | |
3894 '<' shift, and go to state 59 | |
3895 '&' shift, and go to state 60 | |
3896 '|' shift, and go to state 61 | |
3897 '+' shift, and go to state 62 | |
3898 '-' shift, and go to state 63 | |
3899 '*' shift, and go to state 64 | |
3900 '/' shift, and go to state 65 | |
3901 '%' shift, and go to state 66 | |
3902 | |
3903 $default reduce using rule 52 (assign) | |
3904 | |
3905 | |
3906 state 153 | |
3907 | |
3908 53 assign: value "-=" expr . [';', ')'] | |
3909 57 expr: expr . "&&" expr | |
3910 58 | expr . "||" expr | |
3911 59 | expr . "==" expr | |
3912 60 | expr . "!=" expr | |
3913 61 | expr . '>' expr | |
3914 62 | expr . ">=" expr | |
3915 63 | expr . '<' expr | |
3916 64 | expr . "<=" expr | |
3917 65 | expr . '&' expr | |
3918 66 | expr . '|' expr | |
3919 67 | expr . "<<" expr | |
3920 68 | expr . ">>" expr | |
3921 69 | expr . '-' expr | |
3922 70 | expr . '+' expr | |
3923 71 | expr . '*' expr | |
3924 72 | expr . '/' expr | |
3925 73 | expr . '%' expr | |
3926 | |
3927 "||" shift, and go to state 50 | |
3928 "&&" shift, and go to state 51 | |
3929 "==" shift, and go to state 52 | |
3930 "!=" shift, and go to state 53 | |
3931 ">=" shift, and go to state 54 | |
3932 "<=" shift, and go to state 55 | |
3933 "<<" shift, and go to state 56 | |
3934 ">>" shift, and go to state 57 | |
3935 '>' shift, and go to state 58 | |
3936 '<' shift, and go to state 59 | |
3937 '&' shift, and go to state 60 | |
3938 '|' shift, and go to state 61 | |
3939 '+' shift, and go to state 62 | |
3940 '-' shift, and go to state 63 | |
3941 '*' shift, and go to state 64 | |
3942 '/' shift, and go to state 65 | |
3943 '%' shift, and go to state 66 | |
3944 | |
3945 $default reduce using rule 53 (assign) | |
3946 | |
3947 | |
3948 state 154 | |
3949 | |
3950 54 assign: value "*=" expr . [';', ')'] | |
3951 57 expr: expr . "&&" expr | |
3952 58 | expr . "||" expr | |
3953 59 | expr . "==" expr | |
3954 60 | expr . "!=" expr | |
3955 61 | expr . '>' expr | |
3956 62 | expr . ">=" expr | |
3957 63 | expr . '<' expr | |
3958 64 | expr . "<=" expr | |
3959 65 | expr . '&' expr | |
3960 66 | expr . '|' expr | |
3961 67 | expr . "<<" expr | |
3962 68 | expr . ">>" expr | |
3963 69 | expr . '-' expr | |
3964 70 | expr . '+' expr | |
3965 71 | expr . '*' expr | |
3966 72 | expr . '/' expr | |
3967 73 | expr . '%' expr | |
3968 | |
3969 "||" shift, and go to state 50 | |
3970 "&&" shift, and go to state 51 | |
3971 "==" shift, and go to state 52 | |
3972 "!=" shift, and go to state 53 | |
3973 ">=" shift, and go to state 54 | |
3974 "<=" shift, and go to state 55 | |
3975 "<<" shift, and go to state 56 | |
3976 ">>" shift, and go to state 57 | |
3977 '>' shift, and go to state 58 | |
3978 '<' shift, and go to state 59 | |
3979 '&' shift, and go to state 60 | |
3980 '|' shift, and go to state 61 | |
3981 '+' shift, and go to state 62 | |
3982 '-' shift, and go to state 63 | |
3983 '*' shift, and go to state 64 | |
3984 '/' shift, and go to state 65 | |
3985 '%' shift, and go to state 66 | |
3986 | |
3987 $default reduce using rule 54 (assign) | |
3988 | |
3989 | |
3990 state 155 | |
3991 | |
3992 55 assign: value "/=" expr . [';', ')'] | |
3993 57 expr: expr . "&&" expr | |
3994 58 | expr . "||" expr | |
3995 59 | expr . "==" expr | |
3996 60 | expr . "!=" expr | |
3997 61 | expr . '>' expr | |
3998 62 | expr . ">=" expr | |
3999 63 | expr . '<' expr | |
4000 64 | expr . "<=" expr | |
4001 65 | expr . '&' expr | |
4002 66 | expr . '|' expr | |
4003 67 | expr . "<<" expr | |
4004 68 | expr . ">>" expr | |
4005 69 | expr . '-' expr | |
4006 70 | expr . '+' expr | |
4007 71 | expr . '*' expr | |
4008 72 | expr . '/' expr | |
4009 73 | expr . '%' expr | |
4010 | |
4011 "||" shift, and go to state 50 | |
4012 "&&" shift, and go to state 51 | |
4013 "==" shift, and go to state 52 | |
4014 "!=" shift, and go to state 53 | |
4015 ">=" shift, and go to state 54 | |
4016 "<=" shift, and go to state 55 | |
4017 "<<" shift, and go to state 56 | |
4018 ">>" shift, and go to state 57 | |
4019 '>' shift, and go to state 58 | |
4020 '<' shift, and go to state 59 | |
4021 '&' shift, and go to state 60 | |
4022 '|' shift, and go to state 61 | |
4023 '+' shift, and go to state 62 | |
4024 '-' shift, and go to state 63 | |
4025 '*' shift, and go to state 64 | |
4026 '/' shift, and go to state 65 | |
4027 '%' shift, and go to state 66 | |
4028 | |
4029 $default reduce using rule 55 (assign) | |
4030 | |
4031 | |
4032 state 156 | |
4033 | |
4034 56 assign: value "%=" expr . [';', ')'] | |
4035 57 expr: expr . "&&" expr | |
4036 58 | expr . "||" expr | |
4037 59 | expr . "==" expr | |
4038 60 | expr . "!=" expr | |
4039 61 | expr . '>' expr | |
4040 62 | expr . ">=" expr | |
4041 63 | expr . '<' expr | |
4042 64 | expr . "<=" expr | |
4043 65 | expr . '&' expr | |
4044 66 | expr . '|' expr | |
4045 67 | expr . "<<" expr | |
4046 68 | expr . ">>" expr | |
4047 69 | expr . '-' expr | |
4048 70 | expr . '+' expr | |
4049 71 | expr . '*' expr | |
4050 72 | expr . '/' expr | |
4051 73 | expr . '%' expr | |
4052 | |
4053 "||" shift, and go to state 50 | |
4054 "&&" shift, and go to state 51 | |
4055 "==" shift, and go to state 52 | |
4056 "!=" shift, and go to state 53 | |
4057 ">=" shift, and go to state 54 | |
4058 "<=" shift, and go to state 55 | |
4059 "<<" shift, and go to state 56 | |
4060 ">>" shift, and go to state 57 | |
4061 '>' shift, and go to state 58 | |
4062 '<' shift, and go to state 59 | |
4063 '&' shift, and go to state 60 | |
4064 '|' shift, and go to state 61 | |
4065 '+' shift, and go to state 62 | |
4066 '-' shift, and go to state 63 | |
4067 '*' shift, and go to state 64 | |
4068 '/' shift, and go to state 65 | |
4069 '%' shift, and go to state 66 | |
4070 | |
4071 $default reduce using rule 56 (assign) | |
4072 | |
4073 | |
4074 state 157 | |
4075 | |
4076 51 assign: value '=' expr . [';', ')'] | |
4077 57 expr: expr . "&&" expr | |
4078 58 | expr . "||" expr | |
4079 59 | expr . "==" expr | |
4080 60 | expr . "!=" expr | |
4081 61 | expr . '>' expr | |
4082 62 | expr . ">=" expr | |
4083 63 | expr . '<' expr | |
4084 64 | expr . "<=" expr | |
4085 65 | expr . '&' expr | |
4086 66 | expr . '|' expr | |
4087 67 | expr . "<<" expr | |
4088 68 | expr . ">>" expr | |
4089 69 | expr . '-' expr | |
4090 70 | expr . '+' expr | |
4091 71 | expr . '*' expr | |
4092 72 | expr . '/' expr | |
4093 73 | expr . '%' expr | |
4094 | |
4095 "||" shift, and go to state 50 | |
4096 "&&" shift, and go to state 51 | |
4097 "==" shift, and go to state 52 | |
4098 "!=" shift, and go to state 53 | |
4099 ">=" shift, and go to state 54 | |
4100 "<=" shift, and go to state 55 | |
4101 "<<" shift, and go to state 56 | |
4102 ">>" shift, and go to state 57 | |
4103 '>' shift, and go to state 58 | |
4104 '<' shift, and go to state 59 | |
4105 '&' shift, and go to state 60 | |
4106 '|' shift, and go to state 61 | |
4107 '+' shift, and go to state 62 | |
4108 '-' shift, and go to state 63 | |
4109 '*' shift, and go to state 64 | |
4110 '/' shift, and go to state 65 | |
4111 '%' shift, and go to state 66 | |
4112 | |
4113 $default reduce using rule 51 (assign) | |
4114 | |
4115 | |
4116 state 158 | |
4117 | |
4118 33 decls: decls type value_list ';' . | |
4119 | |
4120 $default reduce using rule 33 (decls) | |
4121 | |
4122 | |
4123 state 159 | |
4124 | |
4125 39 statement: "identifier" '(' ')' ';' . | |
4126 | |
4127 $default reduce using rule 39 (statement) | |
4128 | |
4129 | |
4130 state 160 | |
4131 | |
4132 38 statement: "identifier" '(' args ')' . ';' | |
4133 | |
4134 ';' shift, and go to state 165 | |
4135 | |
4136 | |
4137 state 161 | |
4138 | |
4139 27 block: . '{' decl_list state_list '}' | |
4140 36 statement: . ';' | |
4141 37 | . assign ';' | |
4142 38 | . "identifier" '(' args ')' ';' | |
4143 39 | . "identifier" '(' ')' ';' | |
4144 40 | . "case" expr ':' | |
4145 41 | . "default" ':' | |
4146 42 | . "break" ';' | |
4147 43 | . "return" ';' | |
4148 44 | . "return" expr ';' | |
4149 45 | . "if" '(' expr ')' statement | |
4150 45 | "if" '(' expr ')' . statement | |
4151 46 | . "if" '(' expr ')' statement "else" statement | |
4152 46 | "if" '(' expr ')' . statement "else" statement | |
4153 47 | . "for" '(' assign ';' expr ';' assign ')' statement | |
4154 48 | . "while" '(' expr ')' statement | |
4155 49 | . "switch" '(' expr ')' '{' state_list '}' | |
4156 50 | . block | |
4157 51 assign: . value '=' expr | |
4158 52 | . value "+=" expr | |
4159 53 | . value "-=" expr | |
4160 54 | . value "*=" expr | |
4161 55 | . value "/=" expr | |
4162 56 | . value "%=" expr | |
4163 81 value: . "identifier" | |
4164 82 | . "identifier" '[' expr ']' | |
4165 | |
4166 "identifier" shift, and go to state 100 | |
4167 "if" shift, and go to state 101 | |
4168 "while" shift, and go to state 102 | |
4169 "for" shift, and go to state 103 | |
4170 "switch" shift, and go to state 104 | |
4171 "case" shift, and go to state 105 | |
4172 "default" shift, and go to state 106 | |
4173 "break" shift, and go to state 107 | |
4174 "return" shift, and go to state 108 | |
4175 ';' shift, and go to state 109 | |
4176 '{' shift, and go to state 38 | |
4177 | |
4178 block go to state 110 | |
4179 statement go to state 166 | |
4180 assign go to state 114 | |
4181 value go to state 115 | |
4182 | |
4183 | |
4184 state 162 | |
4185 | |
4186 27 block: . '{' decl_list state_list '}' | |
4187 36 statement: . ';' | |
4188 37 | . assign ';' | |
4189 38 | . "identifier" '(' args ')' ';' | |
4190 39 | . "identifier" '(' ')' ';' | |
4191 40 | . "case" expr ':' | |
4192 41 | . "default" ':' | |
4193 42 | . "break" ';' | |
4194 43 | . "return" ';' | |
4195 44 | . "return" expr ';' | |
4196 45 | . "if" '(' expr ')' statement | |
4197 46 | . "if" '(' expr ')' statement "else" statement | |
4198 47 | . "for" '(' assign ';' expr ';' assign ')' statement | |
4199 48 | . "while" '(' expr ')' statement | |
4200 48 | "while" '(' expr ')' . statement | |
4201 49 | . "switch" '(' expr ')' '{' state_list '}' | |
4202 50 | . block | |
4203 51 assign: . value '=' expr | |
4204 52 | . value "+=" expr | |
4205 53 | . value "-=" expr | |
4206 54 | . value "*=" expr | |
4207 55 | . value "/=" expr | |
4208 56 | . value "%=" expr | |
4209 81 value: . "identifier" | |
4210 82 | . "identifier" '[' expr ']' | |
4211 | |
4212 "identifier" shift, and go to state 100 | |
4213 "if" shift, and go to state 101 | |
4214 "while" shift, and go to state 102 | |
4215 "for" shift, and go to state 103 | |
4216 "switch" shift, and go to state 104 | |
4217 "case" shift, and go to state 105 | |
4218 "default" shift, and go to state 106 | |
4219 "break" shift, and go to state 107 | |
4220 "return" shift, and go to state 108 | |
4221 ';' shift, and go to state 109 | |
4222 '{' shift, and go to state 38 | |
4223 | |
4224 block go to state 110 | |
4225 statement go to state 167 | |
4226 assign go to state 114 | |
4227 value go to state 115 | |
4228 | |
4229 | |
4230 state 163 | |
4231 | |
4232 47 statement: "for" '(' assign ';' . expr ';' assign ')' statement | |
4233 57 expr: . expr "&&" expr | |
4234 58 | . expr "||" expr | |
4235 59 | . expr "==" expr | |
4236 60 | . expr "!=" expr | |
4237 61 | . expr '>' expr | |
4238 62 | . expr ">=" expr | |
4239 63 | . expr '<' expr | |
4240 64 | . expr "<=" expr | |
4241 65 | . expr '&' expr | |
4242 66 | . expr '|' expr | |
4243 67 | . expr "<<" expr | |
4244 68 | . expr ">>" expr | |
4245 69 | . expr '-' expr | |
4246 70 | . expr '+' expr | |
4247 71 | . expr '*' expr | |
4248 72 | . expr '/' expr | |
4249 73 | . expr '%' expr | |
4250 74 | . '-' expr | |
4251 75 | . '(' expr ')' | |
4252 76 | . value | |
4253 77 | . "ival" | |
4254 78 | . "sval" | |
4255 79 | . "identifier" '(' args ')' | |
4256 80 | . "identifier" '(' ')' | |
4257 81 value: . "identifier" | |
4258 82 | . "identifier" '[' expr ']' | |
4259 | |
4260 "ival" shift, and go to state 28 | |
4261 "identifier" shift, and go to state 29 | |
4262 "sval" shift, and go to state 30 | |
4263 '-' shift, and go to state 31 | |
4264 '(' shift, and go to state 32 | |
4265 | |
4266 expr go to state 168 | |
4267 value go to state 34 | |
4268 | |
4269 | |
4270 state 164 | |
4271 | |
4272 49 statement: "switch" '(' expr ')' . '{' state_list '}' | |
4273 | |
4274 '{' shift, and go to state 169 | |
4275 | |
4276 | |
4277 state 165 | |
4278 | |
4279 38 statement: "identifier" '(' args ')' ';' . | |
4280 | |
4281 $default reduce using rule 38 (statement) | |
4282 | |
4283 | |
4284 state 166 | |
4285 | |
4286 45 statement: "if" '(' expr ')' statement . ["identifier", "if", "else", "while", "for", "switch", "case", "default", "break", "return", ';', '{', '}'] | |
4287 46 | "if" '(' expr ')' statement . "else" statement | |
4288 | |
4289 "else" shift, and go to state 170 | |
4290 | |
4291 "else" [reduce using rule 45 (statement)] | |
4292 $default reduce using rule 45 (statement) | |
4293 | |
4294 | |
4295 state 167 | |
4296 | |
4297 48 statement: "while" '(' expr ')' statement . | |
4298 | |
4299 $default reduce using rule 48 (statement) | |
4300 | |
4301 | |
4302 state 168 | |
4303 | |
4304 47 statement: "for" '(' assign ';' expr . ';' assign ')' statement | |
4305 57 expr: expr . "&&" expr | |
4306 58 | expr . "||" expr | |
4307 59 | expr . "==" expr | |
4308 60 | expr . "!=" expr | |
4309 61 | expr . '>' expr | |
4310 62 | expr . ">=" expr | |
4311 63 | expr . '<' expr | |
4312 64 | expr . "<=" expr | |
4313 65 | expr . '&' expr | |
4314 66 | expr . '|' expr | |
4315 67 | expr . "<<" expr | |
4316 68 | expr . ">>" expr | |
4317 69 | expr . '-' expr | |
4318 70 | expr . '+' expr | |
4319 71 | expr . '*' expr | |
4320 72 | expr . '/' expr | |
4321 73 | expr . '%' expr | |
4322 | |
4323 "||" shift, and go to state 50 | |
4324 "&&" shift, and go to state 51 | |
4325 "==" shift, and go to state 52 | |
4326 "!=" shift, and go to state 53 | |
4327 ">=" shift, and go to state 54 | |
4328 "<=" shift, and go to state 55 | |
4329 "<<" shift, and go to state 56 | |
4330 ">>" shift, and go to state 57 | |
4331 '>' shift, and go to state 58 | |
4332 '<' shift, and go to state 59 | |
4333 '&' shift, and go to state 60 | |
4334 '|' shift, and go to state 61 | |
4335 '+' shift, and go to state 62 | |
4336 '-' shift, and go to state 63 | |
4337 '*' shift, and go to state 64 | |
4338 '/' shift, and go to state 65 | |
4339 '%' shift, and go to state 66 | |
4340 ';' shift, and go to state 171 | |
4341 | |
4342 | |
4343 state 169 | |
4344 | |
4345 27 block: . '{' decl_list state_list '}' | |
4346 30 state_list: . ['}'] | |
4347 31 | . states | |
4348 34 states: . statement | |
4349 35 | . states statement | |
4350 36 statement: . ';' | |
4351 37 | . assign ';' | |
4352 38 | . "identifier" '(' args ')' ';' | |
4353 39 | . "identifier" '(' ')' ';' | |
4354 40 | . "case" expr ':' | |
4355 41 | . "default" ':' | |
4356 42 | . "break" ';' | |
4357 43 | . "return" ';' | |
4358 44 | . "return" expr ';' | |
4359 45 | . "if" '(' expr ')' statement | |
4360 46 | . "if" '(' expr ')' statement "else" statement | |
4361 47 | . "for" '(' assign ';' expr ';' assign ')' statement | |
4362 48 | . "while" '(' expr ')' statement | |
4363 49 | . "switch" '(' expr ')' '{' state_list '}' | |
4364 49 | "switch" '(' expr ')' '{' . state_list '}' | |
4365 50 | . block | |
4366 51 assign: . value '=' expr | |
4367 52 | . value "+=" expr | |
4368 53 | . value "-=" expr | |
4369 54 | . value "*=" expr | |
4370 55 | . value "/=" expr | |
4371 56 | . value "%=" expr | |
4372 81 value: . "identifier" | |
4373 82 | . "identifier" '[' expr ']' | |
4374 | |
4375 "identifier" shift, and go to state 100 | |
4376 "if" shift, and go to state 101 | |
4377 "while" shift, and go to state 102 | |
4378 "for" shift, and go to state 103 | |
4379 "switch" shift, and go to state 104 | |
4380 "case" shift, and go to state 105 | |
4381 "default" shift, and go to state 106 | |
4382 "break" shift, and go to state 107 | |
4383 "return" shift, and go to state 108 | |
4384 ';' shift, and go to state 109 | |
4385 '{' shift, and go to state 38 | |
4386 | |
4387 $default reduce using rule 30 (state_list) | |
4388 | |
4389 block go to state 110 | |
4390 state_list go to state 172 | |
4391 states go to state 112 | |
4392 statement go to state 113 | |
4393 assign go to state 114 | |
4394 value go to state 115 | |
4395 | |
4396 | |
4397 state 170 | |
4398 | |
4399 27 block: . '{' decl_list state_list '}' | |
4400 36 statement: . ';' | |
4401 37 | . assign ';' | |
4402 38 | . "identifier" '(' args ')' ';' | |
4403 39 | . "identifier" '(' ')' ';' | |
4404 40 | . "case" expr ':' | |
4405 41 | . "default" ':' | |
4406 42 | . "break" ';' | |
4407 43 | . "return" ';' | |
4408 44 | . "return" expr ';' | |
4409 45 | . "if" '(' expr ')' statement | |
4410 46 | . "if" '(' expr ')' statement "else" statement | |
4411 46 | "if" '(' expr ')' statement "else" . statement | |
4412 47 | . "for" '(' assign ';' expr ';' assign ')' statement | |
4413 48 | . "while" '(' expr ')' statement | |
4414 49 | . "switch" '(' expr ')' '{' state_list '}' | |
4415 50 | . block | |
4416 51 assign: . value '=' expr | |
4417 52 | . value "+=" expr | |
4418 53 | . value "-=" expr | |
4419 54 | . value "*=" expr | |
4420 55 | . value "/=" expr | |
4421 56 | . value "%=" expr | |
4422 81 value: . "identifier" | |
4423 82 | . "identifier" '[' expr ']' | |
4424 | |
4425 "identifier" shift, and go to state 100 | |
4426 "if" shift, and go to state 101 | |
4427 "while" shift, and go to state 102 | |
4428 "for" shift, and go to state 103 | |
4429 "switch" shift, and go to state 104 | |
4430 "case" shift, and go to state 105 | |
4431 "default" shift, and go to state 106 | |
4432 "break" shift, and go to state 107 | |
4433 "return" shift, and go to state 108 | |
4434 ';' shift, and go to state 109 | |
4435 '{' shift, and go to state 38 | |
4436 | |
4437 block go to state 110 | |
4438 statement go to state 173 | |
4439 assign go to state 114 | |
4440 value go to state 115 | |
4441 | |
4442 | |
4443 state 171 | |
4444 | |
4445 47 statement: "for" '(' assign ';' expr ';' . assign ')' statement | |
4446 51 assign: . value '=' expr | |
4447 52 | . value "+=" expr | |
4448 53 | . value "-=" expr | |
4449 54 | . value "*=" expr | |
4450 55 | . value "/=" expr | |
4451 56 | . value "%=" expr | |
4452 81 value: . "identifier" | |
4453 82 | . "identifier" '[' expr ']' | |
4454 | |
4455 "identifier" shift, and go to state 35 | |
4456 | |
4457 assign go to state 174 | |
4458 value go to state 115 | |
4459 | |
4460 | |
4461 state 172 | |
4462 | |
4463 49 statement: "switch" '(' expr ')' '{' state_list . '}' | |
4464 | |
4465 '}' shift, and go to state 175 | |
4466 | |
4467 | |
4468 state 173 | |
4469 | |
4470 46 statement: "if" '(' expr ')' statement "else" statement . | |
4471 | |
4472 $default reduce using rule 46 (statement) | |
4473 | |
4474 | |
4475 state 174 | |
4476 | |
4477 47 statement: "for" '(' assign ';' expr ';' assign . ')' statement | |
4478 | |
4479 ')' shift, and go to state 176 | |
4480 | |
4481 | |
4482 state 175 | |
4483 | |
4484 49 statement: "switch" '(' expr ')' '{' state_list '}' . | |
4485 | |
4486 $default reduce using rule 49 (statement) | |
4487 | |
4488 | |
4489 state 176 | |
4490 | |
4491 27 block: . '{' decl_list state_list '}' | |
4492 36 statement: . ';' | |
4493 37 | . assign ';' | |
4494 38 | . "identifier" '(' args ')' ';' | |
4495 39 | . "identifier" '(' ')' ';' | |
4496 40 | . "case" expr ':' | |
4497 41 | . "default" ':' | |
4498 42 | . "break" ';' | |
4499 43 | . "return" ';' | |
4500 44 | . "return" expr ';' | |
4501 45 | . "if" '(' expr ')' statement | |
4502 46 | . "if" '(' expr ')' statement "else" statement | |
4503 47 | . "for" '(' assign ';' expr ';' assign ')' statement | |
4504 47 | "for" '(' assign ';' expr ';' assign ')' . statement | |
4505 48 | . "while" '(' expr ')' statement | |
4506 49 | . "switch" '(' expr ')' '{' state_list '}' | |
4507 50 | . block | |
4508 51 assign: . value '=' expr | |
4509 52 | . value "+=" expr | |
4510 53 | . value "-=" expr | |
4511 54 | . value "*=" expr | |
4512 55 | . value "/=" expr | |
4513 56 | . value "%=" expr | |
4514 81 value: . "identifier" | |
4515 82 | . "identifier" '[' expr ']' | |
4516 | |
4517 "identifier" shift, and go to state 100 | |
4518 "if" shift, and go to state 101 | |
4519 "while" shift, and go to state 102 | |
4520 "for" shift, and go to state 103 | |
4521 "switch" shift, and go to state 104 | |
4522 "case" shift, and go to state 105 | |
4523 "default" shift, and go to state 106 | |
4524 "break" shift, and go to state 107 | |
4525 "return" shift, and go to state 108 | |
4526 ';' shift, and go to state 109 | |
4527 '{' shift, and go to state 38 | |
4528 | |
4529 block go to state 110 | |
4530 statement go to state 177 | |
4531 assign go to state 114 | |
4532 value go to state 115 | |
4533 | |
4534 | |
4535 state 177 | |
4536 | |
4537 47 statement: "for" '(' assign ';' expr ';' assign ')' statement . | |
4538 | |
4539 $default reduce using rule 47 (statement) |