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)