7 4 typename : opt_scope ID
11 6 input : $$1 decl_list
17 9 decl_list : decl_list $$2 decl
19 10 decl : decl_specs declarator_list ';'
23 12 decl : decl_specs declarator $$3 block_statement
25 13 decl_specs : decl_spec
26 14 | decl_specs $$2 decl_spec
31 17 decl_spec : cv_qual
44 26 declarator_list : declarator_list ',' $$4 $$5 declarator
54 32 declarator : '(' $$6 $$7 declarator ')'
55 33 | '*' cv_quals $$4 $$5 declarator
56 34 | declarator '[' $$4 expr ']'
57 35 | declarator '(' $$4 formal_arg_list ')' cv_quals
60 37 | nonempty_formal_arg_list
62 38 nonempty_formal_arg_list : nonempty_formal_arg_list ',' $$6 formal_arg
65 40 formal_arg : decl_specs declarator
67 41 expr : expr '+' $$6 expr
68 42 | expr '-' $$6 expr
69 43 | expr '*' $$6 expr
70 44 | expr '%' $$6 expr
71 45 | expr '/' $$6 expr
83 53 statement : IF '(' $$6 expr ')' THEN $$8 statement ELSE $$9 statement
84 54 | IF '(' $$6 expr ')' THEN $$8 statement
88 56 statement : $$10 block_statement
91 58 | statement_list $$2 statement
93 59 block_statement : '{' $$2 statement_list '}'
96 $accept : . input $end (0)
106 $accept : input . $end (0)
112 input : $$1 . decl_list (6)
121 input : $$1 decl_list . (6)
122 decl_list : decl_list . $$2 decl (9)
138 decl_list : decl_list $$2 . decl (9)
158 decl_spec : EXTERN . (19)
164 decl_spec : REGISTER . (20)
170 decl_spec : STATIC . (21)
176 cv_qual : CONST . (22)
182 cv_qual : VOLATILE . (23)
188 opt_scope : CLCL . (2)
194 decl_list : decl_list $$2 decl . (9)
199 12: shift/reduce conflict (shift 18, reduce 28) on '('
200 12: shift/reduce conflict (shift 19, reduce 8) on ID
202 decl : decl_specs . declarator_list ';' (10)
203 decl : decl_specs . declarator $$3 block_statement (12)
204 decl_specs : decl_specs . $$2 decl_spec (14)
211 '(' [trial] reduce 28
224 declarator_list goto 20
230 decl_specs : decl_spec . (13)
236 decl_spec : typename . (18)
242 decl_spec : cv_qual . (17)
248 opt_scope : opt_scope . ID CLCL (3)
249 typename : opt_scope . ID (4)
256 declarator : '*' . cv_quals $$4 $$5 declarator (33)
265 declarator : '(' . $$6 $$7 declarator ')' (32)
274 declarator : ID . (29)
280 decl : decl_specs declarator_list . ';' (10)
281 declarator_list : declarator_list . ',' $$4 $$5 declarator (26)
289 decl : decl_specs declarator . $$3 block_statement (12)
290 declarator_list : declarator . (27)
291 declarator : declarator . '[' $$4 expr ']' (34)
292 declarator : declarator . '(' $$4 formal_arg_list ')' cv_quals (35)
305 decl_specs : decl_specs $$2 . decl_spec (14)
322 23: shift/reduce conflict (shift 32, reduce 4) on CLCL
324 opt_scope : opt_scope ID . CLCL (3)
325 typename : opt_scope ID . (4)
327 CLCL [trial] shift 32
337 CLCL [trial] reduce 4
345 cv_quals : cv_quals . cv_qual (16)
346 declarator : '*' cv_quals . $$4 $$5 declarator (33)
365 declarator : '(' $$6 . $$7 declarator ')' (32)
374 decl : decl_specs declarator_list ';' . (10)
380 declarator_list : declarator_list ',' . $$4 $$5 declarator (26)
389 declarator : declarator '(' . $$4 formal_arg_list ')' cv_quals (35)
398 declarator : declarator '[' . $$4 expr ']' (34)
407 decl : decl_specs declarator $$3 . block_statement (12)
412 block_statement goto 40
416 decl_specs : decl_specs $$2 decl_spec . (14)
422 opt_scope : opt_scope ID CLCL . (3)
428 cv_quals : cv_quals cv_qual . (16)
434 declarator : '*' cv_quals $$4 . $$5 declarator (33)
442 35: shift/reduce conflict (shift 18, reduce 28) on '('
444 declarator : '(' $$6 $$7 . declarator ')' (32)
450 '(' [trial] reduce 28
458 declarator_list : declarator_list ',' $$4 . $$5 declarator (26)
467 declarator : declarator '(' $$4 . formal_arg_list ')' cv_quals (35)
469 formal_arg_list : . (36)
486 formal_arg_list goto 46
487 nonempty_formal_arg_list goto 47
491 declarator : declarator '[' $$4 . expr ']' (34)
502 block_statement : '{' . $$2 statement_list '}' (59)
511 decl : decl_specs declarator $$3 block_statement . (12)
516 41: shift/reduce conflict (shift 18, reduce 28) on '('
518 declarator : '*' cv_quals $$4 $$5 . declarator (33)
524 '(' [trial] reduce 28
535 declarator : '(' $$6 $$7 declarator . ')' (32)
536 declarator : declarator . '[' $$4 expr ']' (34)
537 declarator : declarator . '(' $$4 formal_arg_list ')' cv_quals (35)
545 43: shift/reduce conflict (shift 18, reduce 28) on '('
547 declarator_list : declarator_list ',' $$4 $$5 . declarator (26)
553 '(' [trial] reduce 28
562 nonempty_formal_arg_list : formal_arg . (39)
567 45: shift/reduce conflict (shift 18, reduce 28) on '('
568 45: shift/reduce conflict (shift 19, reduce 8) on ID
570 decl_specs : decl_specs . $$2 decl_spec (14)
571 formal_arg : decl_specs . declarator (40)
578 '(' [trial] reduce 28
595 declarator : declarator '(' $$4 formal_arg_list . ')' cv_quals (35)
602 formal_arg_list : nonempty_formal_arg_list . (37)
603 nonempty_formal_arg_list : nonempty_formal_arg_list . ',' $$6 formal_arg (38)
610 expr : '*' . $$2 expr (46)
625 expr : CONSTANT . (48)
631 declarator : declarator '[' $$4 expr . ']' (34)
632 expr : expr . '+' $$6 expr (41)
633 expr : expr . '-' $$6 expr (42)
634 expr : expr . '*' $$6 expr (43)
635 expr : expr . '%' $$6 expr (44)
636 expr : expr . '/' $$6 expr (45)
648 block_statement : '{' $$2 . statement_list '}' (59)
649 statement_list : . (57)
653 statement_list goto 66
657 declarator : '*' cv_quals $$4 $$5 declarator . (33)
658 declarator : declarator . '[' $$4 expr ']' (34)
659 declarator : declarator . '(' $$4 formal_arg_list ')' cv_quals (35)
670 declarator : '(' $$6 $$7 declarator ')' . (32)
676 declarator_list : declarator_list ',' $$4 $$5 declarator . (26)
677 declarator : declarator . '[' $$4 expr ']' (34)
678 declarator : declarator . '(' $$4 formal_arg_list ')' cv_quals (35)
687 declarator : declarator . '[' $$4 expr ']' (34)
688 declarator : declarator . '(' $$4 formal_arg_list ')' cv_quals (35)
689 formal_arg : decl_specs declarator . (40)
698 declarator : declarator '(' $$4 formal_arg_list ')' . cv_quals (35)
707 nonempty_formal_arg_list : nonempty_formal_arg_list ',' . $$6 formal_arg (38)
716 expr : '*' $$2 . expr (46)
727 expr : expr '+' . $$6 expr (41)
736 expr : expr '-' . $$6 expr (42)
745 expr : expr '*' . $$6 expr (43)
754 expr : expr '/' . $$6 expr (45)
763 expr : expr '%' . $$6 expr (44)
772 declarator : declarator '[' $$4 expr ']' . (34)
778 statement_list : statement_list . $$2 statement (58)
779 block_statement : '{' $$2 statement_list . '}' (59)
799 cv_quals : cv_quals . cv_qual (16)
800 declarator : declarator '(' $$4 formal_arg_list ')' cv_quals . (35)
815 nonempty_formal_arg_list : nonempty_formal_arg_list ',' $$6 . formal_arg (38)
835 expr : expr . '+' $$6 expr (41)
836 expr : expr . '-' $$6 expr (42)
837 expr : expr . '*' $$6 expr (43)
838 expr : expr . '%' $$6 expr (44)
839 expr : expr . '/' $$6 expr (45)
840 expr : '*' $$2 expr . (46)
846 expr : expr '+' $$6 . expr (41)
857 expr : expr '-' $$6 . expr (42)
868 expr : expr '*' $$6 . expr (43)
879 expr : expr '/' $$6 . expr (45)
890 expr : expr '%' $$6 . expr (44)
901 block_statement : '{' $$2 statement_list '}' . (59)
906 76: shift/reduce conflict (shift 49, reduce 1) on ID
908 statement_list : statement_list $$2 . statement (58)
937 nonempty_formal_arg_list : nonempty_formal_arg_list ',' $$6 formal_arg . (38)
943 expr : expr . '+' $$6 expr (41)
944 expr : expr '+' $$6 expr . (41)
945 expr : expr . '-' $$6 expr (42)
946 expr : expr . '*' $$6 expr (43)
947 expr : expr . '%' $$6 expr (44)
948 expr : expr . '/' $$6 expr (45)
961 expr : expr . '+' $$6 expr (41)
962 expr : expr . '-' $$6 expr (42)
963 expr : expr '-' $$6 expr . (42)
964 expr : expr . '*' $$6 expr (43)
965 expr : expr . '%' $$6 expr (44)
966 expr : expr . '/' $$6 expr (45)
979 expr : expr . '+' $$6 expr (41)
980 expr : expr . '-' $$6 expr (42)
981 expr : expr . '*' $$6 expr (43)
982 expr : expr '*' $$6 expr . (43)
983 expr : expr . '%' $$6 expr (44)
984 expr : expr . '/' $$6 expr (45)
990 expr : expr . '+' $$6 expr (41)
991 expr : expr . '-' $$6 expr (42)
992 expr : expr . '*' $$6 expr (43)
993 expr : expr . '%' $$6 expr (44)
994 expr : expr . '/' $$6 expr (45)
995 expr : expr '/' $$6 expr . (45)
1001 expr : expr . '+' $$6 expr (41)
1002 expr : expr . '-' $$6 expr (42)
1003 expr : expr . '*' $$6 expr (43)
1004 expr : expr . '%' $$6 expr (44)
1005 expr : expr '%' $$6 expr . (44)
1006 expr : expr . '/' $$6 expr (45)
1012 statement : IF . '(' $$6 expr ')' THEN $$8 statement ELSE $$9 statement (53)
1013 statement : IF . '(' $$6 expr ')' THEN $$8 statement (54)
1020 expr : expr . '+' $$6 expr (41)
1021 expr : expr . '-' $$6 expr (42)
1022 expr : expr . '*' $$6 expr (43)
1023 expr : expr . '%' $$6 expr (44)
1024 expr : expr . '/' $$6 expr (45)
1025 statement : expr . ';' (50)
1037 statement : decl . (49)
1043 statement_list : statement_list $$2 statement . (58)
1049 statement : $$10 . block_statement (56)
1054 block_statement goto 90
1058 statement : IF '(' . $$6 expr ')' THEN $$8 statement ELSE $$9 statement (53)
1059 statement : IF '(' . $$6 expr ')' THEN $$8 statement (54)
1068 statement : expr ';' . (50)
1074 statement : $$10 block_statement . (56)
1080 statement : IF '(' $$6 . expr ')' THEN $$8 statement ELSE $$9 statement (53)
1081 statement : IF '(' $$6 . expr ')' THEN $$8 statement (54)
1092 expr : expr . '+' $$6 expr (41)
1093 expr : expr . '-' $$6 expr (42)
1094 expr : expr . '*' $$6 expr (43)
1095 expr : expr . '%' $$6 expr (44)
1096 expr : expr . '/' $$6 expr (45)
1097 statement : IF '(' $$6 expr . ')' THEN $$8 statement ELSE $$9 statement (53)
1098 statement : IF '(' $$6 expr . ')' THEN $$8 statement (54)
1110 statement : IF '(' $$6 expr ')' . THEN $$8 statement ELSE $$9 statement (53)
1111 statement : IF '(' $$6 expr ')' . THEN $$8 statement (54)
1118 statement : IF '(' $$6 expr ')' THEN . $$8 statement ELSE $$9 statement (53)
1119 statement : IF '(' $$6 expr ')' THEN . $$8 statement (54)
1127 95: shift/reduce conflict (shift 49, reduce 1) on ID
1129 statement : IF '(' $$6 expr ')' THEN $$8 . statement ELSE $$9 statement (53)
1130 statement : IF '(' $$6 expr ')' THEN $$8 . statement (54)
1158 96: shift/reduce conflict (shift 97, reduce 54) on ELSE
1160 statement : IF '(' $$6 expr ')' THEN $$8 statement . ELSE $$9 statement (53)
1161 statement : IF '(' $$6 expr ')' THEN $$8 statement . (54)
1163 ELSE [trial] shift 97
1173 ELSE [trial] reduce 54
1180 statement : IF '(' $$6 expr ')' THEN $$8 statement ELSE . $$9 statement (53)
1188 98: shift/reduce conflict (shift 49, reduce 1) on ID
1190 statement : IF '(' $$6 expr ')' THEN $$8 statement ELSE $$9 . statement (53)
1219 statement : IF '(' $$6 expr ')' THEN $$8 statement ELSE $$9 statement . (53)
1224 State 12 contains 2 shift/reduce conflicts.
1225 State 23 contains 1 shift/reduce conflict.
1226 State 35 contains 1 shift/reduce conflict.
1227 State 41 contains 1 shift/reduce conflict.
1228 State 43 contains 1 shift/reduce conflict.
1229 State 45 contains 2 shift/reduce conflicts.
1230 State 76 contains 1 shift/reduce conflict.
1231 State 95 contains 1 shift/reduce conflict.
1232 State 96 contains 1 shift/reduce conflict.
1233 State 98 contains 1 shift/reduce conflict.
1236 29 terminals, 29 nonterminals
1237 60 grammar rules, 100 states
1239 grammar parser grammar
1240 symbol# value# symbol
1274 33 274 declarator_list
1277 36 277 statement_list
1278 37 278 block_statement
1287 46 287 formal_arg_list
1288 47 288 nonempty_formal_arg_list