7 4 typename : opt_scope ID
11 6 input : $$1 decl_list
17 9 decl_list : decl_list $$2 decl
21 11 decl : decl_specs $$2 $$3 declarator_list ';'
25 13 decl : decl_specs $$2 $$3 declarator $$4 block_statement
27 14 decl_specs : decl_spec
28 15 | decl_specs $$2 decl_spec
33 18 decl_spec : cv_qual
46 27 declarator_list : declarator_list ',' $$5 $$6 declarator
56 33 declarator : '(' $$7 $$8 declarator ')'
57 34 | '*' cv_quals $$5 $$6 declarator
58 35 | declarator '[' $$5 expr ']'
59 36 | declarator '(' $$5 formal_arg_list ')' cv_quals
62 38 | nonempty_formal_arg_list
64 39 nonempty_formal_arg_list : nonempty_formal_arg_list ',' $$7 formal_arg
67 41 formal_arg : decl_specs $$2 $$3 declarator
69 42 expr : expr '+' $$7 expr
70 43 | expr '-' $$7 expr
71 44 | expr '*' $$7 expr
72 45 | expr '%' $$7 expr
73 46 | expr '/' $$7 expr
82 52 statement : $$9 expr ';'
88 55 statement : IF '(' $$7 expr ')' THEN $$10 statement ELSE $$11 statement
89 56 | IF '(' $$7 expr ')' THEN $$10 statement
93 58 statement : $$12 block_statement
96 60 | statement_list $$2 statement
98 61 block_statement : '{' $$2 statement_list '}'
101 $accept : . input $end (0)
111 $accept : input . $end (0)
117 input : $$1 . decl_list (6)
126 input : $$1 decl_list . (6)
127 decl_list : decl_list . $$2 decl (9)
143 decl_list : decl_list $$2 . decl (9)
163 decl_spec : EXTERN . (20)
169 decl_spec : REGISTER . (21)
175 decl_spec : STATIC . (22)
181 cv_qual : CONST . (23)
187 cv_qual : VOLATILE . (24)
193 opt_scope : CLCL . (2)
199 decl_list : decl_list $$2 decl . (9)
205 decl : decl_specs . $$2 $$3 declarator_list ';' (11)
206 decl : decl_specs . $$2 $$3 declarator $$4 block_statement (13)
207 decl_specs : decl_specs . $$2 decl_spec (15)
216 decl_specs : decl_spec . (14)
222 decl_spec : typename . (19)
228 decl_spec : cv_qual . (18)
234 opt_scope : opt_scope . ID CLCL (3)
235 typename : opt_scope . ID (4)
241 17: reduce/reduce conflict (reduce 1, reduce 10) on ID
243 decl : decl_specs $$2 . $$3 declarator_list ';' (11)
244 decl : decl_specs $$2 . $$3 declarator $$4 block_statement (13)
245 decl_specs : decl_specs $$2 . decl_spec (15)
271 18: shift/reduce conflict (shift 21, reduce 4) on CLCL
273 opt_scope : opt_scope ID . CLCL (3)
274 typename : opt_scope ID . (4)
276 CLCL [trial] shift 21
286 CLCL [trial] reduce 4
294 decl_specs : decl_specs $$2 decl_spec . (15)
299 20: shift/reduce conflict (shift 23, reduce 29) on '('
301 decl : decl_specs $$2 $$3 . declarator_list ';' (11)
302 decl : decl_specs $$2 $$3 . declarator $$4 block_statement (13)
308 '(' [trial] reduce 29
314 declarator_list goto 25
319 opt_scope : opt_scope ID CLCL . (3)
325 declarator : '*' . cv_quals $$5 $$6 declarator (34)
334 declarator : '(' . $$7 $$8 declarator ')' (33)
343 declarator : ID . (30)
349 decl : decl_specs $$2 $$3 declarator_list . ';' (11)
350 declarator_list : declarator_list . ',' $$5 $$6 declarator (27)
358 decl : decl_specs $$2 $$3 declarator . $$4 block_statement (13)
359 declarator_list : declarator . (28)
360 declarator : declarator . '[' $$5 expr ']' (35)
361 declarator : declarator . '(' $$5 formal_arg_list ')' cv_quals (36)
374 cv_quals : cv_quals . cv_qual (17)
375 declarator : '*' cv_quals . $$5 $$6 declarator (34)
394 declarator : '(' $$7 . $$8 declarator ')' (33)
403 decl : decl_specs $$2 $$3 declarator_list ';' . (11)
409 declarator_list : declarator_list ',' . $$5 $$6 declarator (27)
418 declarator : declarator '(' . $$5 formal_arg_list ')' cv_quals (36)
427 declarator : declarator '[' . $$5 expr ']' (35)
436 decl : decl_specs $$2 $$3 declarator $$4 . block_statement (13)
441 block_statement goto 41
445 cv_quals : cv_quals cv_qual . (17)
451 declarator : '*' cv_quals $$5 . $$6 declarator (34)
459 36: shift/reduce conflict (shift 23, reduce 29) on '('
461 declarator : '(' $$7 $$8 . declarator ')' (33)
467 '(' [trial] reduce 29
475 declarator_list : declarator_list ',' $$5 . $$6 declarator (27)
484 declarator : declarator '(' $$5 . formal_arg_list ')' cv_quals (36)
486 formal_arg_list : . (37)
503 formal_arg_list goto 47
504 nonempty_formal_arg_list goto 48
508 declarator : declarator '[' $$5 . expr ']' (35)
519 block_statement : '{' . $$2 statement_list '}' (61)
528 decl : decl_specs $$2 $$3 declarator $$4 block_statement . (13)
533 42: shift/reduce conflict (shift 23, reduce 29) on '('
535 declarator : '*' cv_quals $$5 $$6 . declarator (34)
541 '(' [trial] reduce 29
552 declarator : '(' $$7 $$8 declarator . ')' (33)
553 declarator : declarator . '[' $$5 expr ']' (35)
554 declarator : declarator . '(' $$5 formal_arg_list ')' cv_quals (36)
562 44: shift/reduce conflict (shift 23, reduce 29) on '('
564 declarator_list : declarator_list ',' $$5 $$6 . declarator (27)
570 '(' [trial] reduce 29
579 nonempty_formal_arg_list : formal_arg . (40)
585 decl_specs : decl_specs . $$2 decl_spec (15)
586 formal_arg : decl_specs . $$2 $$3 declarator (41)
595 declarator : declarator '(' $$5 formal_arg_list . ')' cv_quals (36)
602 formal_arg_list : nonempty_formal_arg_list . (38)
603 nonempty_formal_arg_list : nonempty_formal_arg_list . ',' $$7 formal_arg (39)
610 expr : '*' . $$2 expr (47)
625 expr : CONSTANT . (49)
631 declarator : declarator '[' $$5 expr . ']' (35)
632 expr : expr . '+' $$7 expr (42)
633 expr : expr . '-' $$7 expr (43)
634 expr : expr . '*' $$7 expr (44)
635 expr : expr . '%' $$7 expr (45)
636 expr : expr . '/' $$7 expr (46)
648 block_statement : '{' $$2 . statement_list '}' (61)
649 statement_list : . (59)
653 statement_list goto 67
657 declarator : '*' cv_quals $$5 $$6 declarator . (34)
658 declarator : declarator . '[' $$5 expr ']' (35)
659 declarator : declarator . '(' $$5 formal_arg_list ')' cv_quals (36)
670 declarator : '(' $$7 $$8 declarator ')' . (33)
676 declarator_list : declarator_list ',' $$5 $$6 declarator . (27)
677 declarator : declarator . '[' $$5 expr ']' (35)
678 declarator : declarator . '(' $$5 formal_arg_list ')' cv_quals (36)
686 57: reduce/reduce conflict (reduce 1, reduce 10) on ID
688 decl_specs : decl_specs $$2 . decl_spec (15)
689 formal_arg : decl_specs $$2 . $$3 declarator (41)
715 declarator : declarator '(' $$5 formal_arg_list ')' . cv_quals (36)
724 nonempty_formal_arg_list : nonempty_formal_arg_list ',' . $$7 formal_arg (39)
733 expr : '*' $$2 . expr (47)
744 expr : expr '+' . $$7 expr (42)
753 expr : expr '-' . $$7 expr (43)
762 expr : expr '*' . $$7 expr (44)
771 expr : expr '/' . $$7 expr (46)
780 expr : expr '%' . $$7 expr (45)
789 declarator : declarator '[' $$5 expr ']' . (35)
795 statement_list : statement_list . $$2 statement (60)
796 block_statement : '{' $$2 statement_list . '}' (61)
815 68: shift/reduce conflict (shift 23, reduce 29) on '('
817 formal_arg : decl_specs $$2 $$3 . declarator (41)
823 '(' [trial] reduce 29
832 cv_quals : cv_quals . cv_qual (17)
833 declarator : declarator '(' $$5 formal_arg_list ')' cv_quals . (36)
848 nonempty_formal_arg_list : nonempty_formal_arg_list ',' $$7 . formal_arg (39)
868 expr : expr . '+' $$7 expr (42)
869 expr : expr . '-' $$7 expr (43)
870 expr : expr . '*' $$7 expr (44)
871 expr : expr . '%' $$7 expr (45)
872 expr : expr . '/' $$7 expr (46)
873 expr : '*' $$2 expr . (47)
879 expr : expr '+' $$7 . expr (42)
890 expr : expr '-' $$7 . expr (43)
901 expr : expr '*' $$7 . expr (44)
912 expr : expr '/' $$7 . expr (46)
923 expr : expr '%' $$7 . expr (45)
934 block_statement : '{' $$2 statement_list '}' . (61)
939 78: reduce/reduce conflict (reduce 1, reduce 51) on ID
941 statement_list : statement_list $$2 . statement (60)
971 declarator : declarator . '[' $$5 expr ']' (35)
972 declarator : declarator . '(' $$5 formal_arg_list ')' cv_quals (36)
973 formal_arg : decl_specs $$2 $$3 declarator . (41)
982 nonempty_formal_arg_list : nonempty_formal_arg_list ',' $$7 formal_arg . (39)
988 expr : expr . '+' $$7 expr (42)
989 expr : expr '+' $$7 expr . (42)
990 expr : expr . '-' $$7 expr (43)
991 expr : expr . '*' $$7 expr (44)
992 expr : expr . '%' $$7 expr (45)
993 expr : expr . '/' $$7 expr (46)
1006 expr : expr . '+' $$7 expr (42)
1007 expr : expr . '-' $$7 expr (43)
1008 expr : expr '-' $$7 expr . (43)
1009 expr : expr . '*' $$7 expr (44)
1010 expr : expr . '%' $$7 expr (45)
1011 expr : expr . '/' $$7 expr (46)
1024 expr : expr . '+' $$7 expr (42)
1025 expr : expr . '-' $$7 expr (43)
1026 expr : expr . '*' $$7 expr (44)
1027 expr : expr '*' $$7 expr . (44)
1028 expr : expr . '%' $$7 expr (45)
1029 expr : expr . '/' $$7 expr (46)
1035 expr : expr . '+' $$7 expr (42)
1036 expr : expr . '-' $$7 expr (43)
1037 expr : expr . '*' $$7 expr (44)
1038 expr : expr . '%' $$7 expr (45)
1039 expr : expr . '/' $$7 expr (46)
1040 expr : expr '/' $$7 expr . (46)
1046 expr : expr . '+' $$7 expr (42)
1047 expr : expr . '-' $$7 expr (43)
1048 expr : expr . '*' $$7 expr (44)
1049 expr : expr . '%' $$7 expr (45)
1050 expr : expr '%' $$7 expr . (45)
1051 expr : expr . '/' $$7 expr (46)
1057 statement : IF . '(' $$7 expr ')' THEN $$10 statement ELSE $$11 statement (55)
1058 statement : IF . '(' $$7 expr ')' THEN $$10 statement (56)
1065 statement : decl . (50)
1071 statement_list : statement_list $$2 statement . (60)
1077 statement : $$9 . expr ';' (52)
1088 statement : $$12 . block_statement (58)
1093 block_statement goto 93
1097 statement : IF '(' . $$7 expr ')' THEN $$10 statement ELSE $$11 statement (55)
1098 statement : IF '(' . $$7 expr ')' THEN $$10 statement (56)
1107 expr : expr . '+' $$7 expr (42)
1108 expr : expr . '-' $$7 expr (43)
1109 expr : expr . '*' $$7 expr (44)
1110 expr : expr . '%' $$7 expr (45)
1111 expr : expr . '/' $$7 expr (46)
1112 statement : $$9 expr . ';' (52)
1124 statement : $$12 block_statement . (58)
1130 statement : IF '(' $$7 . expr ')' THEN $$10 statement ELSE $$11 statement (55)
1131 statement : IF '(' $$7 . expr ')' THEN $$10 statement (56)
1142 statement : $$9 expr ';' . (52)
1148 expr : expr . '+' $$7 expr (42)
1149 expr : expr . '-' $$7 expr (43)
1150 expr : expr . '*' $$7 expr (44)
1151 expr : expr . '%' $$7 expr (45)
1152 expr : expr . '/' $$7 expr (46)
1153 statement : IF '(' $$7 expr . ')' THEN $$10 statement ELSE $$11 statement (55)
1154 statement : IF '(' $$7 expr . ')' THEN $$10 statement (56)
1166 statement : IF '(' $$7 expr ')' . THEN $$10 statement ELSE $$11 statement (55)
1167 statement : IF '(' $$7 expr ')' . THEN $$10 statement (56)
1174 statement : IF '(' $$7 expr ')' THEN . $$10 statement ELSE $$11 statement (55)
1175 statement : IF '(' $$7 expr ')' THEN . $$10 statement (56)
1183 99: reduce/reduce conflict (reduce 1, reduce 51) on ID
1185 statement : IF '(' $$7 expr ')' THEN $$10 . statement ELSE $$11 statement (55)
1186 statement : IF '(' $$7 expr ')' THEN $$10 . statement (56)
1200 ID [trial] reduce 51
1215 100: shift/reduce conflict (shift 101, reduce 56) on ELSE
1217 statement : IF '(' $$7 expr ')' THEN $$10 statement . ELSE $$11 statement (55)
1218 statement : IF '(' $$7 expr ')' THEN $$10 statement . (56)
1220 ELSE [trial] shift 101
1230 ELSE [trial] reduce 56
1237 statement : IF '(' $$7 expr ')' THEN $$10 statement ELSE . $$11 statement (55)
1245 102: reduce/reduce conflict (reduce 1, reduce 51) on ID
1247 statement : IF '(' $$7 expr ')' THEN $$10 statement ELSE $$11 . statement (55)
1261 ID [trial] reduce 51
1277 statement : IF '(' $$7 expr ')' THEN $$10 statement ELSE $$11 statement . (55)
1282 State 17 contains 1 reduce/reduce conflict.
1283 State 18 contains 1 shift/reduce conflict.
1284 State 20 contains 1 shift/reduce conflict.
1285 State 36 contains 1 shift/reduce conflict.
1286 State 42 contains 1 shift/reduce conflict.
1287 State 44 contains 1 shift/reduce conflict.
1288 State 57 contains 1 reduce/reduce conflict.
1289 State 68 contains 1 shift/reduce conflict.
1290 State 78 contains 1 reduce/reduce conflict.
1291 State 99 contains 1 reduce/reduce conflict.
1292 State 100 contains 1 shift/reduce conflict.
1293 State 102 contains 1 reduce/reduce conflict.
1296 29 terminals, 31 nonterminals
1297 62 grammar rules, 104 states
1299 grammar parser grammar
1300 symbol# value# symbol
1334 33 274 declarator_list
1337 36 277 statement_list
1338 37 278 block_statement
1347 46 287 formal_arg_list
1348 47 288 nonempty_formal_arg_list