head 1.1; branch 1.1.1; access; symbols netbsd-11-0-RC4:1.1.1.2 byacc-20260126:1.1.1.2 netbsd-11-0-RC3:1.1.1.2 netbsd-11-0-RC2:1.1.1.2 netbsd-11-0-RC1:1.1.1.2 byacc-20241231:1.1.1.2 perseant-exfatfs-base-20250801:1.1.1.2 netbsd-11:1.1.1.2.0.26 netbsd-11-base:1.1.1.2 netbsd-10-1-RELEASE:1.1.1.2 byacc-20240109:1.1.1.2 perseant-exfatfs-base-20240630:1.1.1.2 perseant-exfatfs:1.1.1.2.0.24 perseant-exfatfs-base:1.1.1.2 netbsd-8-3-RELEASE:1.1.1.2 netbsd-9-4-RELEASE:1.1.1.2 netbsd-10-0-RELEASE:1.1.1.2 netbsd-10-0-RC6:1.1.1.2 netbsd-10-0-RC5:1.1.1.2 netbsd-10-0-RC4:1.1.1.2 netbsd-10-0-RC3:1.1.1.2 netbsd-10-0-RC2:1.1.1.2 netbsd-10-0-RC1:1.1.1.2 netbsd-10:1.1.1.2.0.22 netbsd-10-base:1.1.1.2 netbsd-9-3-RELEASE:1.1.1.2 cjep_sun2x-base1:1.1.1.2 cjep_sun2x:1.1.1.2.0.20 cjep_sun2x-base:1.1.1.2 cjep_staticlib_x-base1:1.1.1.2 netbsd-9-2-RELEASE:1.1.1.2 cjep_staticlib_x:1.1.1.2.0.18 cjep_staticlib_x-base:1.1.1.2 byacc-20210109:1.1.1.2 netbsd-9-1-RELEASE:1.1.1.2 phil-wifi-20200421:1.1.1.2 phil-wifi-20200411:1.1.1.2 is-mlppp:1.1.1.2.0.16 is-mlppp-base:1.1.1.2 phil-wifi-20200406:1.1.1.2 netbsd-8-2-RELEASE:1.1.1.2 netbsd-9-0-RELEASE:1.1.1.2 netbsd-9-0-RC2:1.1.1.2 netbsd-9-0-RC1:1.1.1.2 phil-wifi-20191119:1.1.1.2 byacc-20190617:1.1.1.2 netbsd-9:1.1.1.2.0.14 netbsd-9-base:1.1.1.2 phil-wifi-20190609:1.1.1.2 netbsd-8-1-RELEASE:1.1.1.2 netbsd-8-1-RC1:1.1.1.2 pgoyette-compat-merge-20190127:1.1.1.2 pgoyette-compat-20190127:1.1.1.2 pgoyette-compat-20190118:1.1.1.2 pgoyette-compat-1226:1.1.1.2 byacc-20180609:1.1.1.2 pgoyette-compat-1126:1.1.1.2 pgoyette-compat-1020:1.1.1.2 pgoyette-compat-0930:1.1.1.2 pgoyette-compat-0906:1.1.1.2 pgoyette-compat-0728:1.1.1.2 netbsd-8-0-RELEASE:1.1.1.2 phil-wifi:1.1.1.2.0.12 phil-wifi-base:1.1.1.2 pgoyette-compat-0625:1.1.1.2 netbsd-8-0-RC2:1.1.1.2 pgoyette-compat-0521:1.1.1.2 pgoyette-compat-0502:1.1.1.2 pgoyette-compat-0422:1.1.1.2 netbsd-8-0-RC1:1.1.1.2 pgoyette-compat-0415:1.1.1.2 pgoyette-compat-0407:1.1.1.2 pgoyette-compat-0330:1.1.1.2 pgoyette-compat-0322:1.1.1.2 pgoyette-compat-0315:1.1.1.2 pgoyette-compat:1.1.1.2.0.10 pgoyette-compat-base:1.1.1.2 matt-nb8-mediatek:1.1.1.2.0.8 matt-nb8-mediatek-base:1.1.1.2 perseant-stdc-iso10646:1.1.1.2.0.6 perseant-stdc-iso10646-base:1.1.1.2 byacc-20170430:1.1.1.2 netbsd-8:1.1.1.2.0.4 netbsd-8-base:1.1.1.2 prg-localcount2-base3:1.1.1.2 prg-localcount2-base2:1.1.1.2 prg-localcount2-base1:1.1.1.2 prg-localcount2:1.1.1.2.0.2 prg-localcount2-base:1.1.1.2 pgoyette-localcount-20170426:1.1.1.2 bouyer-socketcan-base1:1.1.1.2 pgoyette-localcount-20170320:1.1.1.2 byacc-20170201:1.1.1.2 bouyer-socketcan:1.1.1.1.0.4 bouyer-socketcan-base:1.1.1.1 pgoyette-localcount-20170107:1.1.1.1 pgoyette-localcount-20161104:1.1.1.1 localcount-20160914:1.1.1.1 pgoyette-localcount-20160806:1.1.1.1 pgoyette-localcount-20160726:1.1.1.1 pgoyette-localcount:1.1.1.1.0.2 pgoyette-localcount-base:1.1.1.1 byacc-20150711:1.1.1.1 byacc-20141128:1.1.1.1 DICKEY:1.1.1; locks; strict; comment @# @; 1.1 date 2015.01.03.22.58.24; author christos; state Exp; branches 1.1.1.1; next ; commitid WWTpfhLfU6SzfD4y; 1.1.1.1 date 2015.01.03.22.58.24; author christos; state Exp; branches 1.1.1.1.2.1 1.1.1.1.4.1; next 1.1.1.2; commitid WWTpfhLfU6SzfD4y; 1.1.1.2 date 2017.02.11.19.30.03; author christos; state Exp; branches; next ; commitid wnNPHIKvRp3plzFz; 1.1.1.1.2.1 date 2017.03.20.06.52.18; author pgoyette; state Exp; branches; next ; commitid jjw7cAwgyKq7RfKz; 1.1.1.1.4.1 date 2017.04.21.16.51.21; author bouyer; state Exp; branches; next ; commitid dUG7nkTKALCadqOz; desc @@ 1.1 log @Initial revision @ text @ 0 $accept : input $end 1 opt_scope : 2 | CLCL 3 | opt_scope ID CLCL 4 typename : opt_scope ID 5 $$1 : 6 input : $$1 decl_list 7 decl_list : 8 $$2 : 9 decl_list : decl_list $$2 decl 10 $$3 : 11 decl : decl_specs $$2 $$3 declarator_list ';' 12 $$4 : 13 decl : decl_specs $$2 $$3 declarator $$4 block_statement 14 decl_specs : decl_spec 15 | decl_specs $$2 decl_spec 16 cv_quals : 17 | cv_quals cv_qual 18 decl_spec : cv_qual 19 | typename 20 | EXTERN 21 | REGISTER 22 | STATIC 23 cv_qual : CONST 24 | VOLATILE 25 $$5 : 26 $$6 : 27 declarator_list : declarator_list ',' $$5 $$6 declarator 28 | declarator 29 declarator : 30 | ID 31 $$7 : 32 $$8 : 33 declarator : '(' $$7 $$8 declarator ')' 34 | '*' cv_quals $$5 $$6 declarator 35 | declarator '[' $$5 expr ']' 36 | declarator '(' $$5 formal_arg_list ')' cv_quals 37 formal_arg_list : 38 | nonempty_formal_arg_list 39 nonempty_formal_arg_list : nonempty_formal_arg_list ',' $$7 formal_arg 40 | formal_arg 41 formal_arg : decl_specs $$2 $$3 declarator 42 expr : expr '+' $$7 expr 43 | expr '-' $$7 expr 44 | expr '*' $$7 expr 45 | expr '%' $$7 expr 46 | expr '/' $$7 expr 47 | '*' $$2 expr 48 | ID 49 | CONSTANT 50 statement : decl 51 $$9 : 52 statement : $$9 expr ';' 53 $$10 : 54 $$11 : 55 statement : IF '(' $$7 expr ')' THEN $$10 statement ELSE $$11 statement 56 | IF '(' $$7 expr ')' THEN $$10 statement 57 $$12 : 58 statement : $$12 block_statement 59 statement_list : 60 | statement_list $$2 statement 61 block_statement : '{' $$2 statement_list '}' state 0 $accept : . input $end (0) $$1 : . (5) . reduce 5 input goto 1 $$1 goto 2 state 1 $accept : input . $end (0) $end accept state 2 input : $$1 . decl_list (6) decl_list : . (7) . reduce 7 decl_list goto 3 state 3 input : $$1 decl_list . (6) decl_list : decl_list . $$2 decl (9) $$2 : . (8) $end reduce 6 ID reduce 8 EXTERN reduce 8 REGISTER reduce 8 STATIC reduce 8 CONST reduce 8 VOLATILE reduce 8 CLCL reduce 8 $$2 goto 4 state 4 decl_list : decl_list $$2 . decl (9) opt_scope : . (1) EXTERN shift 5 REGISTER shift 6 STATIC shift 7 CONST shift 8 VOLATILE shift 9 CLCL shift 10 ID reduce 1 decl goto 11 decl_specs goto 12 decl_spec goto 13 typename goto 14 cv_qual goto 15 opt_scope goto 16 state 5 decl_spec : EXTERN . (20) . reduce 20 state 6 decl_spec : REGISTER . (21) . reduce 21 state 7 decl_spec : STATIC . (22) . reduce 22 state 8 cv_qual : CONST . (23) . reduce 23 state 9 cv_qual : VOLATILE . (24) . reduce 24 state 10 opt_scope : CLCL . (2) . reduce 2 state 11 decl_list : decl_list $$2 decl . (9) . reduce 9 state 12 decl : decl_specs . $$2 $$3 declarator_list ';' (11) decl : decl_specs . $$2 $$3 declarator $$4 block_statement (13) decl_specs : decl_specs . $$2 decl_spec (15) $$2 : . (8) . reduce 8 $$2 goto 17 state 13 decl_specs : decl_spec . (14) . reduce 14 state 14 decl_spec : typename . (19) . reduce 19 state 15 decl_spec : cv_qual . (18) . reduce 18 state 16 opt_scope : opt_scope . ID CLCL (3) typename : opt_scope . ID (4) ID shift 18 . error 17: reduce/reduce conflict (reduce 1, reduce 10) on ID state 17 decl : decl_specs $$2 . $$3 declarator_list ';' (11) decl : decl_specs $$2 . $$3 declarator $$4 block_statement (13) decl_specs : decl_specs $$2 . decl_spec (15) opt_scope : . (1) $$3 : . (10) EXTERN shift 5 REGISTER shift 6 STATIC shift 7 CONST shift 8 VOLATILE shift 9 CLCL shift 10 '*' reduce 10 '(' reduce 10 '[' reduce 10 ID [trial] reduce 1 ID [trial] reduce 10 ';' reduce 10 ',' reduce 10 '{' reduce 10 decl_spec goto 19 typename goto 14 cv_qual goto 15 opt_scope goto 16 $$3 goto 20 18: shift/reduce conflict (shift 21, reduce 4) on CLCL state 18 opt_scope : opt_scope ID . CLCL (3) typename : opt_scope ID . (4) CLCL [trial] shift 21 '*' reduce 4 '(' reduce 4 '[' reduce 4 ID reduce 4 EXTERN reduce 4 REGISTER reduce 4 STATIC reduce 4 CONST reduce 4 VOLATILE reduce 4 CLCL [trial] reduce 4 ';' reduce 4 ',' reduce 4 ')' reduce 4 '{' reduce 4 state 19 decl_specs : decl_specs $$2 decl_spec . (15) . reduce 15 20: shift/reduce conflict (shift 23, reduce 29) on '(' state 20 decl : decl_specs $$2 $$3 . declarator_list ';' (11) decl : decl_specs $$2 $$3 . declarator $$4 block_statement (13) declarator : . (29) '*' shift 22 '(' [trial] shift 23 ID shift 24 '(' [trial] reduce 29 '[' reduce 29 ';' reduce 29 ',' reduce 29 '{' reduce 29 declarator_list goto 25 declarator goto 26 state 21 opt_scope : opt_scope ID CLCL . (3) . reduce 3 state 22 declarator : '*' . cv_quals $$5 $$6 declarator (34) cv_quals : . (16) . reduce 16 cv_quals goto 27 state 23 declarator : '(' . $$7 $$8 declarator ')' (33) $$7 : . (31) . reduce 31 $$7 goto 28 state 24 declarator : ID . (30) . reduce 30 state 25 decl : decl_specs $$2 $$3 declarator_list . ';' (11) declarator_list : declarator_list . ',' $$5 $$6 declarator (27) ';' shift 29 ',' shift 30 . error state 26 decl : decl_specs $$2 $$3 declarator . $$4 block_statement (13) declarator_list : declarator . (28) declarator : declarator . '[' $$5 expr ']' (35) declarator : declarator . '(' $$5 formal_arg_list ')' cv_quals (36) $$4 : . (12) '(' shift 31 '[' shift 32 ';' reduce 28 ',' reduce 28 '{' reduce 12 $$4 goto 33 state 27 cv_quals : cv_quals . cv_qual (17) declarator : '*' cv_quals . $$5 $$6 declarator (34) $$5 : . (25) CONST shift 8 VOLATILE shift 9 '*' reduce 25 '(' reduce 25 '[' reduce 25 ID reduce 25 ';' reduce 25 ',' reduce 25 ')' reduce 25 '{' reduce 25 cv_qual goto 34 $$5 goto 35 state 28 declarator : '(' $$7 . $$8 declarator ')' (33) $$8 : . (32) . reduce 32 $$8 goto 36 state 29 decl : decl_specs $$2 $$3 declarator_list ';' . (11) . reduce 11 state 30 declarator_list : declarator_list ',' . $$5 $$6 declarator (27) $$5 : . (25) . reduce 25 $$5 goto 37 state 31 declarator : declarator '(' . $$5 formal_arg_list ')' cv_quals (36) $$5 : . (25) . reduce 25 $$5 goto 38 state 32 declarator : declarator '[' . $$5 expr ']' (35) $$5 : . (25) . reduce 25 $$5 goto 39 state 33 decl : decl_specs $$2 $$3 declarator $$4 . block_statement (13) '{' shift 40 . error block_statement goto 41 state 34 cv_quals : cv_quals cv_qual . (17) . reduce 17 state 35 declarator : '*' cv_quals $$5 . $$6 declarator (34) $$6 : . (26) . reduce 26 $$6 goto 42 36: shift/reduce conflict (shift 23, reduce 29) on '(' state 36 declarator : '(' $$7 $$8 . declarator ')' (33) declarator : . (29) '*' shift 22 '(' [trial] shift 23 ID shift 24 '(' [trial] reduce 29 '[' reduce 29 ')' reduce 29 declarator goto 43 state 37 declarator_list : declarator_list ',' $$5 . $$6 declarator (27) $$6 : . (26) . reduce 26 $$6 goto 44 state 38 declarator : declarator '(' $$5 . formal_arg_list ')' cv_quals (36) opt_scope : . (1) formal_arg_list : . (37) EXTERN shift 5 REGISTER shift 6 STATIC shift 7 CONST shift 8 VOLATILE shift 9 CLCL shift 10 ID reduce 1 ')' reduce 37 formal_arg goto 45 decl_specs goto 46 decl_spec goto 13 typename goto 14 cv_qual goto 15 opt_scope goto 16 formal_arg_list goto 47 nonempty_formal_arg_list goto 48 state 39 declarator : declarator '[' $$5 . expr ']' (35) '*' shift 49 ID shift 50 CONSTANT shift 51 . error expr goto 52 state 40 block_statement : '{' . $$2 statement_list '}' (61) $$2 : . (8) . reduce 8 $$2 goto 53 state 41 decl : decl_specs $$2 $$3 declarator $$4 block_statement . (13) . reduce 13 42: shift/reduce conflict (shift 23, reduce 29) on '(' state 42 declarator : '*' cv_quals $$5 $$6 . declarator (34) declarator : . (29) '*' shift 22 '(' [trial] shift 23 ID shift 24 '(' [trial] reduce 29 '[' reduce 29 ';' reduce 29 ',' reduce 29 ')' reduce 29 '{' reduce 29 declarator goto 54 state 43 declarator : '(' $$7 $$8 declarator . ')' (33) declarator : declarator . '[' $$5 expr ']' (35) declarator : declarator . '(' $$5 formal_arg_list ')' cv_quals (36) '(' shift 31 '[' shift 32 ')' shift 55 . error 44: shift/reduce conflict (shift 23, reduce 29) on '(' state 44 declarator_list : declarator_list ',' $$5 $$6 . declarator (27) declarator : . (29) '*' shift 22 '(' [trial] shift 23 ID shift 24 '(' [trial] reduce 29 '[' reduce 29 ';' reduce 29 ',' reduce 29 declarator goto 56 state 45 nonempty_formal_arg_list : formal_arg . (40) . reduce 40 state 46 decl_specs : decl_specs . $$2 decl_spec (15) formal_arg : decl_specs . $$2 $$3 declarator (41) $$2 : . (8) . reduce 8 $$2 goto 57 state 47 declarator : declarator '(' $$5 formal_arg_list . ')' cv_quals (36) ')' shift 58 . error state 48 formal_arg_list : nonempty_formal_arg_list . (38) nonempty_formal_arg_list : nonempty_formal_arg_list . ',' $$7 formal_arg (39) ',' shift 59 ')' reduce 38 state 49 expr : '*' . $$2 expr (47) $$2 : . (8) . reduce 8 $$2 goto 60 state 50 expr : ID . (48) . reduce 48 state 51 expr : CONSTANT . (49) . reduce 49 state 52 declarator : declarator '[' $$5 expr . ']' (35) expr : expr . '+' $$7 expr (42) expr : expr . '-' $$7 expr (43) expr : expr . '*' $$7 expr (44) expr : expr . '%' $$7 expr (45) expr : expr . '/' $$7 expr (46) '+' shift 61 '-' shift 62 '*' shift 63 '/' shift 64 '%' shift 65 ']' shift 66 . error state 53 block_statement : '{' $$2 . statement_list '}' (61) statement_list : . (59) . reduce 59 statement_list goto 67 state 54 declarator : '*' cv_quals $$5 $$6 declarator . (34) declarator : declarator . '[' $$5 expr ']' (35) declarator : declarator . '(' $$5 formal_arg_list ')' cv_quals (36) '(' shift 31 '[' shift 32 ';' reduce 34 ',' reduce 34 ')' reduce 34 '{' reduce 34 state 55 declarator : '(' $$7 $$8 declarator ')' . (33) . reduce 33 state 56 declarator_list : declarator_list ',' $$5 $$6 declarator . (27) declarator : declarator . '[' $$5 expr ']' (35) declarator : declarator . '(' $$5 formal_arg_list ')' cv_quals (36) '(' shift 31 '[' shift 32 ';' reduce 27 ',' reduce 27 57: reduce/reduce conflict (reduce 1, reduce 10) on ID state 57 decl_specs : decl_specs $$2 . decl_spec (15) formal_arg : decl_specs $$2 . $$3 declarator (41) opt_scope : . (1) $$3 : . (10) EXTERN shift 5 REGISTER shift 6 STATIC shift 7 CONST shift 8 VOLATILE shift 9 CLCL shift 10 '*' reduce 10 '(' reduce 10 '[' reduce 10 ID [trial] reduce 1 ID [trial] reduce 10 ',' reduce 10 ')' reduce 10 decl_spec goto 19 typename goto 14 cv_qual goto 15 opt_scope goto 16 $$3 goto 68 state 58 declarator : declarator '(' $$5 formal_arg_list ')' . cv_quals (36) cv_quals : . (16) . reduce 16 cv_quals goto 69 state 59 nonempty_formal_arg_list : nonempty_formal_arg_list ',' . $$7 formal_arg (39) $$7 : . (31) . reduce 31 $$7 goto 70 state 60 expr : '*' $$2 . expr (47) '*' shift 49 ID shift 50 CONSTANT shift 51 . error expr goto 71 state 61 expr : expr '+' . $$7 expr (42) $$7 : . (31) . reduce 31 $$7 goto 72 state 62 expr : expr '-' . $$7 expr (43) $$7 : . (31) . reduce 31 $$7 goto 73 state 63 expr : expr '*' . $$7 expr (44) $$7 : . (31) . reduce 31 $$7 goto 74 state 64 expr : expr '/' . $$7 expr (46) $$7 : . (31) . reduce 31 $$7 goto 75 state 65 expr : expr '%' . $$7 expr (45) $$7 : . (31) . reduce 31 $$7 goto 76 state 66 declarator : declarator '[' $$5 expr ']' . (35) . reduce 35 state 67 statement_list : statement_list . $$2 statement (60) block_statement : '{' $$2 statement_list . '}' (61) $$2 : . (8) '}' shift 77 '*' reduce 8 ID reduce 8 CONSTANT reduce 8 EXTERN reduce 8 REGISTER reduce 8 STATIC reduce 8 CONST reduce 8 VOLATILE reduce 8 IF reduce 8 CLCL reduce 8 '{' reduce 8 $$2 goto 78 68: shift/reduce conflict (shift 23, reduce 29) on '(' state 68 formal_arg : decl_specs $$2 $$3 . declarator (41) declarator : . (29) '*' shift 22 '(' [trial] shift 23 ID shift 24 '(' [trial] reduce 29 '[' reduce 29 ',' reduce 29 ')' reduce 29 declarator goto 79 state 69 cv_quals : cv_quals . cv_qual (17) declarator : declarator '(' $$5 formal_arg_list ')' cv_quals . (36) CONST shift 8 VOLATILE shift 9 '(' reduce 36 '[' reduce 36 ';' reduce 36 ',' reduce 36 ')' reduce 36 '{' reduce 36 cv_qual goto 34 state 70 nonempty_formal_arg_list : nonempty_formal_arg_list ',' $$7 . formal_arg (39) opt_scope : . (1) EXTERN shift 5 REGISTER shift 6 STATIC shift 7 CONST shift 8 VOLATILE shift 9 CLCL shift 10 ID reduce 1 formal_arg goto 80 decl_specs goto 46 decl_spec goto 13 typename goto 14 cv_qual goto 15 opt_scope goto 16 state 71 expr : expr . '+' $$7 expr (42) expr : expr . '-' $$7 expr (43) expr : expr . '*' $$7 expr (44) expr : expr . '%' $$7 expr (45) expr : expr . '/' $$7 expr (46) expr : '*' $$2 expr . (47) . reduce 47 state 72 expr : expr '+' $$7 . expr (42) '*' shift 49 ID shift 50 CONSTANT shift 51 . error expr goto 81 state 73 expr : expr '-' $$7 . expr (43) '*' shift 49 ID shift 50 CONSTANT shift 51 . error expr goto 82 state 74 expr : expr '*' $$7 . expr (44) '*' shift 49 ID shift 50 CONSTANT shift 51 . error expr goto 83 state 75 expr : expr '/' $$7 . expr (46) '*' shift 49 ID shift 50 CONSTANT shift 51 . error expr goto 84 state 76 expr : expr '%' $$7 . expr (45) '*' shift 49 ID shift 50 CONSTANT shift 51 . error expr goto 85 state 77 block_statement : '{' $$2 statement_list '}' . (61) . reduce 61 78: reduce/reduce conflict (reduce 1, reduce 51) on ID state 78 statement_list : statement_list $$2 . statement (60) opt_scope : . (1) $$9 : . (51) $$12 : . (57) EXTERN shift 5 REGISTER shift 6 STATIC shift 7 CONST shift 8 VOLATILE shift 9 IF shift 86 CLCL shift 10 '*' reduce 51 ID [trial] reduce 1 ID [trial] reduce 51 CONSTANT reduce 51 '{' reduce 57 decl goto 87 statement goto 88 decl_specs goto 12 decl_spec goto 13 typename goto 14 cv_qual goto 15 opt_scope goto 16 $$9 goto 89 $$12 goto 90 state 79 declarator : declarator . '[' $$5 expr ']' (35) declarator : declarator . '(' $$5 formal_arg_list ')' cv_quals (36) formal_arg : decl_specs $$2 $$3 declarator . (41) '(' shift 31 '[' shift 32 ',' reduce 41 ')' reduce 41 state 80 nonempty_formal_arg_list : nonempty_formal_arg_list ',' $$7 formal_arg . (39) . reduce 39 state 81 expr : expr . '+' $$7 expr (42) expr : expr '+' $$7 expr . (42) expr : expr . '-' $$7 expr (43) expr : expr . '*' $$7 expr (44) expr : expr . '%' $$7 expr (45) expr : expr . '/' $$7 expr (46) '*' shift 63 '/' shift 64 '%' shift 65 '+' reduce 42 '-' reduce 42 ';' reduce 42 ')' reduce 42 ']' reduce 42 state 82 expr : expr . '+' $$7 expr (42) expr : expr . '-' $$7 expr (43) expr : expr '-' $$7 expr . (43) expr : expr . '*' $$7 expr (44) expr : expr . '%' $$7 expr (45) expr : expr . '/' $$7 expr (46) '*' shift 63 '/' shift 64 '%' shift 65 '+' reduce 43 '-' reduce 43 ';' reduce 43 ')' reduce 43 ']' reduce 43 state 83 expr : expr . '+' $$7 expr (42) expr : expr . '-' $$7 expr (43) expr : expr . '*' $$7 expr (44) expr : expr '*' $$7 expr . (44) expr : expr . '%' $$7 expr (45) expr : expr . '/' $$7 expr (46) . reduce 44 state 84 expr : expr . '+' $$7 expr (42) expr : expr . '-' $$7 expr (43) expr : expr . '*' $$7 expr (44) expr : expr . '%' $$7 expr (45) expr : expr . '/' $$7 expr (46) expr : expr '/' $$7 expr . (46) . reduce 46 state 85 expr : expr . '+' $$7 expr (42) expr : expr . '-' $$7 expr (43) expr : expr . '*' $$7 expr (44) expr : expr . '%' $$7 expr (45) expr : expr '%' $$7 expr . (45) expr : expr . '/' $$7 expr (46) . reduce 45 state 86 statement : IF . '(' $$7 expr ')' THEN $$10 statement ELSE $$11 statement (55) statement : IF . '(' $$7 expr ')' THEN $$10 statement (56) '(' shift 91 . error state 87 statement : decl . (50) . reduce 50 state 88 statement_list : statement_list $$2 statement . (60) . reduce 60 state 89 statement : $$9 . expr ';' (52) '*' shift 49 ID shift 50 CONSTANT shift 51 . error expr goto 92 state 90 statement : $$12 . block_statement (58) '{' shift 40 . error block_statement goto 93 state 91 statement : IF '(' . $$7 expr ')' THEN $$10 statement ELSE $$11 statement (55) statement : IF '(' . $$7 expr ')' THEN $$10 statement (56) $$7 : . (31) . reduce 31 $$7 goto 94 state 92 expr : expr . '+' $$7 expr (42) expr : expr . '-' $$7 expr (43) expr : expr . '*' $$7 expr (44) expr : expr . '%' $$7 expr (45) expr : expr . '/' $$7 expr (46) statement : $$9 expr . ';' (52) '+' shift 61 '-' shift 62 '*' shift 63 '/' shift 64 '%' shift 65 ';' shift 95 . error state 93 statement : $$12 block_statement . (58) . reduce 58 state 94 statement : IF '(' $$7 . expr ')' THEN $$10 statement ELSE $$11 statement (55) statement : IF '(' $$7 . expr ')' THEN $$10 statement (56) '*' shift 49 ID shift 50 CONSTANT shift 51 . error expr goto 96 state 95 statement : $$9 expr ';' . (52) . reduce 52 state 96 expr : expr . '+' $$7 expr (42) expr : expr . '-' $$7 expr (43) expr : expr . '*' $$7 expr (44) expr : expr . '%' $$7 expr (45) expr : expr . '/' $$7 expr (46) statement : IF '(' $$7 expr . ')' THEN $$10 statement ELSE $$11 statement (55) statement : IF '(' $$7 expr . ')' THEN $$10 statement (56) '+' shift 61 '-' shift 62 '*' shift 63 '/' shift 64 '%' shift 65 ')' shift 97 . error state 97 statement : IF '(' $$7 expr ')' . THEN $$10 statement ELSE $$11 statement (55) statement : IF '(' $$7 expr ')' . THEN $$10 statement (56) THEN shift 98 . error state 98 statement : IF '(' $$7 expr ')' THEN . $$10 statement ELSE $$11 statement (55) statement : IF '(' $$7 expr ')' THEN . $$10 statement (56) $$10 : . (53) . reduce 53 $$10 goto 99 99: reduce/reduce conflict (reduce 1, reduce 51) on ID state 99 statement : IF '(' $$7 expr ')' THEN $$10 . statement ELSE $$11 statement (55) statement : IF '(' $$7 expr ')' THEN $$10 . statement (56) opt_scope : . (1) $$9 : . (51) $$12 : . (57) EXTERN shift 5 REGISTER shift 6 STATIC shift 7 CONST shift 8 VOLATILE shift 9 IF shift 86 CLCL shift 10 '*' reduce 51 ID [trial] reduce 1 ID [trial] reduce 51 CONSTANT reduce 51 '{' reduce 57 decl goto 87 statement goto 100 decl_specs goto 12 decl_spec goto 13 typename goto 14 cv_qual goto 15 opt_scope goto 16 $$9 goto 89 $$12 goto 90 100: shift/reduce conflict (shift 101, reduce 56) on ELSE state 100 statement : IF '(' $$7 expr ')' THEN $$10 statement . ELSE $$11 statement (55) statement : IF '(' $$7 expr ')' THEN $$10 statement . (56) ELSE [trial] shift 101 '*' reduce 56 ID reduce 56 CONSTANT reduce 56 EXTERN reduce 56 REGISTER reduce 56 STATIC reduce 56 CONST reduce 56 VOLATILE reduce 56 IF reduce 56 ELSE [trial] reduce 56 CLCL reduce 56 '{' reduce 56 '}' reduce 56 state 101 statement : IF '(' $$7 expr ')' THEN $$10 statement ELSE . $$11 statement (55) $$11 : . (54) . reduce 54 $$11 goto 102 102: reduce/reduce conflict (reduce 1, reduce 51) on ID state 102 statement : IF '(' $$7 expr ')' THEN $$10 statement ELSE $$11 . statement (55) opt_scope : . (1) $$9 : . (51) $$12 : . (57) EXTERN shift 5 REGISTER shift 6 STATIC shift 7 CONST shift 8 VOLATILE shift 9 IF shift 86 CLCL shift 10 '*' reduce 51 ID [trial] reduce 1 ID [trial] reduce 51 CONSTANT reduce 51 '{' reduce 57 decl goto 87 statement goto 103 decl_specs goto 12 decl_spec goto 13 typename goto 14 cv_qual goto 15 opt_scope goto 16 $$9 goto 89 $$12 goto 90 state 103 statement : IF '(' $$7 expr ')' THEN $$10 statement ELSE $$11 statement . (55) . reduce 55 State 17 contains 1 reduce/reduce conflict. State 18 contains 1 shift/reduce conflict. State 20 contains 1 shift/reduce conflict. State 36 contains 1 shift/reduce conflict. State 42 contains 1 shift/reduce conflict. State 44 contains 1 shift/reduce conflict. State 57 contains 1 reduce/reduce conflict. State 68 contains 1 shift/reduce conflict. State 78 contains 1 reduce/reduce conflict. State 99 contains 1 reduce/reduce conflict. State 100 contains 1 shift/reduce conflict. State 102 contains 1 reduce/reduce conflict. 29 terminals, 31 nonterminals 62 grammar rules, 104 states grammar parser grammar symbol# value# symbol 0 0 $end 1 256 error 2 43 '+' 3 45 '-' 4 42 '*' 5 47 '/' 6 37 '%' 7 257 PREFIX 8 258 POSTFIX 9 40 '(' 10 91 '[' 11 46 '.' 12 259 ID 13 260 CONSTANT 14 261 EXTERN 15 262 REGISTER 16 263 STATIC 17 264 CONST 18 265 VOLATILE 19 266 IF 20 267 THEN 21 268 ELSE 22 269 CLCL 23 59 ';' 24 44 ',' 25 41 ')' 26 93 ']' 27 123 '{' 28 125 '}' 29 270 $accept 30 271 input 31 272 expr 32 273 decl 33 274 declarator_list 34 275 decl_list 35 276 statement 36 277 statement_list 37 278 block_statement 38 279 declarator 39 280 formal_arg 40 281 decl_specs 41 282 decl_spec 42 283 typename 43 284 cv_quals 44 285 cv_qual 45 286 opt_scope 46 287 formal_arg_list 47 288 nonempty_formal_arg_list 48 289 $$1 49 290 $$2 50 291 $$3 51 292 $$4 52 293 $$5 53 294 $$6 54 295 $$7 55 296 $$8 56 297 $$9 57 298 $$10 58 299 $$11 59 300 $$12 @ 1.1.1.1 log @Import byacc 20141128 @ text @@ 1.1.1.1.4.1 log @Sync with HEAD @ text @d19 1 a19 1 10 decl : decl_specs declarator_list ';' d21 1 a21 1 11 $$3 : d23 1 a23 1 12 decl : decl_specs declarator $$3 block_statement d25 1 a25 2 13 decl_specs : decl_spec 14 | decl_specs $$2 decl_spec d27 2 a28 2 15 cv_quals : 16 | cv_quals cv_qual d30 2 a31 5 17 decl_spec : cv_qual 18 | typename 19 | EXTERN 20 | REGISTER 21 | STATIC d33 5 a37 2 22 cv_qual : CONST 23 | VOLATILE d39 2 a40 1 24 $$4 : d44 1 a44 2 26 declarator_list : declarator_list ',' $$4 $$5 declarator 27 | declarator d46 2 a47 2 28 declarator : 29 | ID d49 2 a50 1 30 $$6 : d54 1 a54 4 32 declarator : '(' $$6 $$7 declarator ')' 33 | '*' cv_quals $$4 $$5 declarator 34 | declarator '[' $$4 expr ']' 35 | declarator '(' $$4 formal_arg_list ')' cv_quals d56 4 a59 2 36 formal_arg_list : 37 | nonempty_formal_arg_list d61 2 a62 2 38 nonempty_formal_arg_list : nonempty_formal_arg_list ',' $$6 formal_arg 39 | formal_arg d64 2 a65 1 40 formal_arg : decl_specs declarator d67 1 a67 8 41 expr : expr '+' $$6 expr 42 | expr '-' $$6 expr 43 | expr '*' $$6 expr 44 | expr '%' $$6 expr 45 | expr '/' $$6 expr 46 | '*' $$2 expr 47 | ID 48 | CONSTANT d69 8 a76 2 49 statement : decl 50 | expr ';' d78 1 a78 1 51 $$8 : d80 1 a80 1 52 $$9 : d82 1 a82 2 53 statement : IF '(' $$6 expr ')' THEN $$8 statement ELSE $$9 statement 54 | IF '(' $$6 expr ')' THEN $$8 statement d84 1 a84 1 55 $$10 : d86 1 a86 1 56 statement : $$10 block_statement d88 2 a89 2 57 statement_list : 58 | statement_list $$2 statement d91 8 a98 1 59 block_statement : '{' $$2 statement_list '}' d163 1 a163 1 decl_spec : EXTERN . (19) d165 1 a165 1 . reduce 19 d169 1 a169 1 decl_spec : REGISTER . (20) d171 1 a171 1 . reduce 20 d175 1 a175 1 decl_spec : STATIC . (21) d177 1 a177 1 . reduce 21 d181 1 a181 1 cv_qual : CONST . (22) d183 1 a183 1 . reduce 22 d187 1 a187 1 cv_qual : VOLATILE . (23) d189 1 a189 1 . reduce 23 a203 2 12: shift/reduce conflict (shift 18, reduce 28) on '(' 12: shift/reduce conflict (shift 19, reduce 8) on ID d205 3 a207 3 decl : decl_specs . declarator_list ';' (10) decl : decl_specs . declarator $$3 block_statement (12) decl_specs : decl_specs . $$2 decl_spec (14) a208 1 declarator : . (28) d210 1 a210 15 '*' shift 17 '(' [trial] shift 18 ID [trial] shift 19 '(' [trial] reduce 28 '[' reduce 28 ID [trial] reduce 8 EXTERN reduce 8 REGISTER reduce 8 STATIC reduce 8 CONST reduce 8 VOLATILE reduce 8 CLCL reduce 8 ';' reduce 28 ',' reduce 28 '{' reduce 28 d212 1 a212 3 declarator_list goto 20 declarator goto 21 $$2 goto 22 d216 1 a216 1 decl_specs : decl_spec . (13) d218 1 a218 1 . reduce 13 d222 1 a222 1 decl_spec : typename . (18) d224 1 a224 1 . reduce 18 d228 1 a228 1 decl_spec : cv_qual . (17) d230 1 a230 1 . reduce 17 d237 1 a237 1 ID shift 23 d241 1 d243 3 a245 50 declarator : '*' . cv_quals $$4 $$5 declarator (33) cv_quals : . (15) . reduce 15 cv_quals goto 24 state 18 declarator : '(' . $$6 $$7 declarator ')' (32) $$6 : . (30) . reduce 30 $$6 goto 25 state 19 declarator : ID . (29) . reduce 29 state 20 decl : decl_specs declarator_list . ';' (10) declarator_list : declarator_list . ',' $$4 $$5 declarator (26) ';' shift 26 ',' shift 27 . error state 21 decl : decl_specs declarator . $$3 block_statement (12) declarator_list : declarator . (27) declarator : declarator . '[' $$4 expr ']' (34) declarator : declarator . '(' $$4 formal_arg_list ')' cv_quals (35) $$3 : . (11) '(' shift 28 '[' shift 29 ';' reduce 27 ',' reduce 27 '{' reduce 11 $$3 goto 30 state 22 decl_specs : decl_specs $$2 . decl_spec (14) d247 1 d255 8 a262 1 ID reduce 1 d264 1 a264 1 decl_spec goto 31 d268 1 d271 2 a272 2 23: shift/reduce conflict (shift 32, reduce 4) on CLCL state 23 d276 1 a276 1 CLCL [trial] shift 32 d293 34 a326 4 state 24 cv_quals : cv_quals . cv_qual (16) declarator : '*' cv_quals . $$4 $$5 declarator (33) $$4 : . (24) d328 1 a328 10 CONST shift 8 VOLATILE shift 9 '*' reduce 24 '(' reduce 24 '[' reduce 24 ID reduce 24 ';' reduce 24 ',' reduce 24 ')' reduce 24 '{' reduce 24 d330 1 a330 2 cv_qual goto 33 $$4 goto 34 d333 2 a334 2 state 25 declarator : '(' $$6 . $$7 declarator ')' (32) d339 16 a354 1 $$7 goto 35 d358 5 a362 1 decl : decl_specs declarator_list ';' . (10) d364 7 a370 1 . reduce 10 d374 3 a376 2 declarator_list : declarator_list ',' . $$4 $$5 declarator (26) $$4 : . (24) d378 10 a387 1 . reduce 24 d389 2 a390 1 $$4 goto 36 d394 2 a395 2 declarator : declarator '(' . $$4 formal_arg_list ')' cv_quals (35) $$4 : . (24) d397 1 a397 1 . reduce 24 d399 1 a399 1 $$4 goto 37 d403 1 a403 4 declarator : declarator '[' . $$4 expr ']' (34) $$4 : . (24) . reduce 24 d405 1 a405 1 $$4 goto 38 d409 2 a410 1 decl : decl_specs declarator $$3 . block_statement (12) d412 1 a412 2 '{' shift 39 . error d414 1 a414 1 block_statement goto 40 d418 2 a419 1 decl_specs : decl_specs $$2 decl_spec . (14) d421 3 a423 1 . reduce 14 d427 4 a430 1 opt_scope : opt_scope ID CLCL . (3) d432 1 a432 1 . reduce 3 d436 4 a439 1 cv_quals : cv_quals cv_qual . (16) d441 1 a441 1 . reduce 16 d445 1 a445 2 declarator : '*' cv_quals $$4 . $$5 declarator (33) $$5 : . (25) d447 1 a447 3 . reduce 25 $$5 goto 41 a449 1 35: shift/reduce conflict (shift 18, reduce 28) on '(' d451 2 a452 2 declarator : '(' $$6 $$7 . declarator ')' (32) declarator : . (28) d454 1 a454 6 '*' shift 17 '(' [trial] shift 18 ID shift 19 '(' [trial] reduce 28 '[' reduce 28 ')' reduce 28 d456 1 a456 1 declarator goto 42 d459 1 d461 2 a462 2 declarator_list : declarator_list ',' $$4 . $$5 declarator (26) $$5 : . (25) d464 6 a469 1 . reduce 25 d471 1 a471 1 $$5 goto 43 d475 10 a484 1 declarator : declarator '(' $$4 . formal_arg_list ')' cv_quals (35) d486 1 a486 1 formal_arg_list : . (36) d495 1 a495 1 ')' reduce 36 d497 2 a498 2 formal_arg goto 44 decl_specs goto 45 d503 2 a504 2 formal_arg_list goto 46 nonempty_formal_arg_list goto 47 d507 2 a508 2 state 38 declarator : declarator '[' $$4 . expr ']' (34) d510 3 a512 3 '*' shift 48 ID shift 49 CONSTANT shift 50 d515 1 a515 1 expr goto 51 d518 2 a519 2 state 39 block_statement : '{' . $$2 statement_list '}' (59) d524 1 a524 1 $$2 goto 52 d527 2 a528 2 state 40 decl : decl_specs declarator $$3 block_statement . (12) d530 1 a530 1 . reduce 12 d533 4 a536 4 41: shift/reduce conflict (shift 18, reduce 28) on '(' state 41 declarator : '*' cv_quals $$4 $$5 . declarator (33) declarator : . (28) d538 9 a546 9 '*' shift 17 '(' [trial] shift 18 ID shift 19 '(' [trial] reduce 28 '[' reduce 28 ';' reduce 28 ',' reduce 28 ')' reduce 28 '{' reduce 28 d548 1 a548 1 declarator goto 53 d551 8 a558 8 state 42 declarator : '(' $$6 $$7 declarator . ')' (32) declarator : declarator . '[' $$4 expr ']' (34) declarator : declarator . '(' $$4 formal_arg_list ')' cv_quals (35) '(' shift 28 '[' shift 29 ')' shift 54 d562 4 a565 4 43: shift/reduce conflict (shift 18, reduce 28) on '(' state 43 declarator_list : declarator_list ',' $$4 $$5 . declarator (26) declarator : . (28) d567 7 a573 7 '*' shift 17 '(' [trial] shift 18 ID shift 19 '(' [trial] reduce 28 '[' reduce 28 ';' reduce 28 ',' reduce 28 d575 1 a575 1 declarator goto 55 d578 2 a579 2 state 44 nonempty_formal_arg_list : formal_arg . (39) d581 1 a581 1 . reduce 39 d584 3 a586 5 45: shift/reduce conflict (shift 18, reduce 28) on '(' 45: shift/reduce conflict (shift 19, reduce 8) on ID state 45 decl_specs : decl_specs . $$2 decl_spec (14) formal_arg : decl_specs . declarator (40) a587 1 declarator : . (28) d589 1 a589 14 '*' shift 17 '(' [trial] shift 18 ID [trial] shift 19 '(' [trial] reduce 28 '[' reduce 28 ID [trial] reduce 8 EXTERN reduce 8 REGISTER reduce 8 STATIC reduce 8 CONST reduce 8 VOLATILE reduce 8 CLCL reduce 8 ',' reduce 28 ')' reduce 28 d591 1 a591 2 declarator goto 56 $$2 goto 22 d594 2 a595 2 state 46 declarator : declarator '(' $$4 formal_arg_list . ')' cv_quals (35) d597 1 a597 1 ')' shift 57 d601 3 a603 3 state 47 formal_arg_list : nonempty_formal_arg_list . (37) nonempty_formal_arg_list : nonempty_formal_arg_list . ',' $$6 formal_arg (38) d605 2 a606 2 ',' shift 58 ')' reduce 37 d609 2 a610 2 state 48 expr : '*' . $$2 expr (46) d615 1 a615 7 $$2 goto 59 state 49 expr : ID . (47) . reduce 47 d619 1 a619 1 expr : CONSTANT . (48) d625 3 a627 14 declarator : declarator '[' $$4 expr . ']' (34) expr : expr . '+' $$6 expr (41) expr : expr . '-' $$6 expr (42) expr : expr . '*' $$6 expr (43) expr : expr . '%' $$6 expr (44) expr : expr . '/' $$6 expr (45) '+' shift 60 '-' shift 61 '*' shift 62 '/' shift 63 '%' shift 64 ']' shift 65 . error d631 14 a644 2 block_statement : '{' $$2 . statement_list '}' (59) statement_list : . (57) a645 1 . reduce 57 d647 3 a649 1 statement_list goto 66 d651 1 d653 1 a653 11 state 53 declarator : '*' cv_quals $$4 $$5 declarator . (33) declarator : declarator . '[' $$4 expr ']' (34) declarator : declarator . '(' $$4 formal_arg_list ')' cv_quals (35) '(' shift 28 '[' shift 29 ';' reduce 33 ',' reduce 33 ')' reduce 33 '{' reduce 33 d657 10 a666 3 declarator : '(' $$6 $$7 declarator ')' . (32) . reduce 32 d670 3 a672 8 declarator_list : declarator_list ',' $$4 $$5 declarator . (26) declarator : declarator . '[' $$4 expr ']' (34) declarator : declarator . '(' $$4 formal_arg_list ')' cv_quals (35) '(' shift 28 '[' shift 29 ';' reduce 26 ',' reduce 26 d676 8 a683 8 declarator : declarator . '[' $$4 expr ']' (34) declarator : declarator . '(' $$4 formal_arg_list ')' cv_quals (35) formal_arg : decl_specs declarator . (40) '(' shift 28 '[' shift 29 ',' reduce 40 ')' reduce 40 d686 1 d688 4 a691 2 declarator : declarator '(' $$4 formal_arg_list ')' . cv_quals (35) cv_quals : . (15) d693 13 a705 1 . reduce 15 d707 5 a711 1 cv_quals goto 67 d715 2 a716 2 nonempty_formal_arg_list : nonempty_formal_arg_list ',' . $$6 formal_arg (38) $$6 : . (30) d718 1 a718 1 . reduce 30 d720 1 a720 1 $$6 goto 68 d724 2 a725 1 expr : '*' $$2 . expr (46) d727 1 a727 4 '*' shift 48 ID shift 49 CONSTANT shift 50 . error d729 1 a729 1 expr goto 69 d733 1 a733 2 expr : expr '+' . $$6 expr (41) $$6 : . (30) d735 4 a738 1 . reduce 30 d740 1 a740 1 $$6 goto 70 d744 2 a745 2 expr : expr '-' . $$6 expr (42) $$6 : . (30) d747 1 a747 1 . reduce 30 d749 1 a749 1 $$6 goto 71 d753 2 a754 2 expr : expr '*' . $$6 expr (43) $$6 : . (30) d756 1 a756 1 . reduce 30 d758 1 a758 1 $$6 goto 72 d762 2 a763 2 expr : expr '/' . $$6 expr (45) $$6 : . (30) d765 1 a765 1 . reduce 30 d767 1 a767 1 $$6 goto 73 d771 2 a772 2 expr : expr '%' . $$6 expr (44) $$6 : . (30) d774 1 a774 1 . reduce 30 d776 1 a776 1 $$6 goto 74 d780 2 a781 1 declarator : declarator '[' $$4 expr ']' . (34) d783 3 a785 1 . reduce 34 d789 8 a796 2 statement_list : statement_list . $$2 statement (58) block_statement : '{' $$2 statement_list . '}' (59) d799 1 a799 1 '}' shift 75 d812 1 a812 1 $$2 goto 76 d815 19 a833 3 state 67 cv_quals : cv_quals . cv_qual (16) declarator : declarator '(' $$4 formal_arg_list ')' cv_quals . (35) d837 6 a842 6 '(' reduce 35 '[' reduce 35 ';' reduce 35 ',' reduce 35 ')' reduce 35 '{' reduce 35 d844 1 a844 1 cv_qual goto 33 d847 2 a848 2 state 68 nonempty_formal_arg_list : nonempty_formal_arg_list ',' $$6 . formal_arg (38) d859 2 a860 2 formal_arg goto 77 decl_specs goto 45 d867 7 a873 7 state 69 expr : expr . '+' $$6 expr (41) expr : expr . '-' $$6 expr (42) expr : expr . '*' $$6 expr (43) expr : expr . '%' $$6 expr (44) expr : expr . '/' $$6 expr (45) expr : '*' $$2 expr . (46) d875 1 a875 1 . reduce 46 d878 2 a879 2 state 70 expr : expr '+' $$6 . expr (41) d881 3 a883 3 '*' shift 48 ID shift 49 CONSTANT shift 50 d886 1 a886 1 expr goto 78 d889 2 a890 2 state 71 expr : expr '-' $$6 . expr (42) d892 3 a894 3 '*' shift 48 ID shift 49 CONSTANT shift 50 d897 1 a897 1 expr goto 79 d900 2 a901 2 state 72 expr : expr '*' $$6 . expr (43) d903 3 a905 3 '*' shift 48 ID shift 49 CONSTANT shift 50 d908 1 a908 1 expr goto 80 d911 2 a912 2 state 73 expr : expr '/' $$6 . expr (45) d914 3 a916 3 '*' shift 48 ID shift 49 CONSTANT shift 50 d919 1 a919 1 expr goto 81 d922 2 a923 2 state 74 expr : expr '%' $$6 . expr (44) d925 3 a927 3 '*' shift 48 ID shift 49 CONSTANT shift 50 d930 1 a930 1 expr goto 82 d933 2 a934 2 state 75 block_statement : '{' $$2 statement_list '}' . (59) d936 1 a936 1 . reduce 59 d939 3 a941 3 76: shift/reduce conflict (shift 49, reduce 1) on ID state 76 statement_list : statement_list $$2 . statement (58) d943 2 a944 1 $$10 : . (55) a945 3 '*' shift 48 ID [trial] shift 49 CONSTANT shift 50 d951 1 a951 1 IF shift 83 d953 1 d955 3 a957 1 '{' reduce 55 d959 2 a960 3 expr goto 84 decl goto 85 statement goto 86 d966 2 a967 1 $$10 goto 87 d970 9 a978 2 state 77 nonempty_formal_arg_list : nonempty_formal_arg_list ',' $$6 formal_arg . (38) a979 1 . reduce 38 d981 2 d984 1 a984 16 state 78 expr : expr . '+' $$6 expr (41) expr : expr '+' $$6 expr . (41) expr : expr . '-' $$6 expr (42) expr : expr . '*' $$6 expr (43) expr : expr . '%' $$6 expr (44) expr : expr . '/' $$6 expr (45) '*' shift 62 '/' shift 63 '%' shift 64 '+' reduce 41 '-' reduce 41 ';' reduce 41 ')' reduce 41 ']' reduce 41 d987 11 a997 11 state 79 expr : expr . '+' $$6 expr (41) expr : expr . '-' $$6 expr (42) expr : expr '-' $$6 expr . (42) expr : expr . '*' $$6 expr (43) expr : expr . '%' $$6 expr (44) expr : expr . '/' $$6 expr (45) '*' shift 62 '/' shift 63 '%' shift 64 a1004 22 state 80 expr : expr . '+' $$6 expr (41) expr : expr . '-' $$6 expr (42) expr : expr . '*' $$6 expr (43) expr : expr '*' $$6 expr . (43) expr : expr . '%' $$6 expr (44) expr : expr . '/' $$6 expr (45) . reduce 43 state 81 expr : expr . '+' $$6 expr (41) expr : expr . '-' $$6 expr (42) expr : expr . '*' $$6 expr (43) expr : expr . '%' $$6 expr (44) expr : expr . '/' $$6 expr (45) expr : expr '/' $$6 expr . (45) . reduce 45 d1006 15 a1020 8 expr : expr . '+' $$6 expr (41) expr : expr . '-' $$6 expr (42) expr : expr . '*' $$6 expr (43) expr : expr . '%' $$6 expr (44) expr : expr '%' $$6 expr . (44) expr : expr . '/' $$6 expr (45) . reduce 44 d1024 6 a1029 2 statement : IF . '(' $$6 expr ')' THEN $$8 statement ELSE $$9 statement (53) statement : IF . '(' $$6 expr ')' THEN $$8 statement (54) d1031 1 a1031 2 '(' shift 88 . error d1035 8 a1042 14 expr : expr . '+' $$6 expr (41) expr : expr . '-' $$6 expr (42) expr : expr . '*' $$6 expr (43) expr : expr . '%' $$6 expr (44) expr : expr . '/' $$6 expr (45) statement : expr . ';' (50) '+' shift 60 '-' shift 61 '*' shift 62 '/' shift 63 '%' shift 64 ';' shift 89 . error d1046 6 a1051 1 statement : decl . (49) d1053 1 a1053 1 . reduce 49 d1057 2 a1058 1 statement_list : statement_list $$2 statement . (58) d1060 2 a1061 1 . reduce 58 d1065 1 a1065 1 statement : $$10 . block_statement (56) d1067 1 a1067 4 '{' shift 39 . error block_statement goto 90 d1071 1 a1071 3 statement : IF '(' . $$6 expr ')' THEN $$8 statement ELSE $$9 statement (53) statement : IF '(' . $$6 expr ')' THEN $$8 statement (54) $$6 : . (30) d1073 1 a1073 1 . reduce 30 a1074 1 $$6 goto 91 d1076 2 d1079 4 a1082 2 state 89 statement : expr ';' . (50) d1084 1 a1084 1 . reduce 50 d1088 4 a1091 1 statement : $$10 block_statement . (56) d1093 1 a1093 1 . reduce 56 d1097 3 a1099 2 statement : IF '(' $$6 . expr ')' THEN $$8 statement ELSE $$9 statement (53) statement : IF '(' $$6 . expr ')' THEN $$8 statement (54) d1101 1 a1101 4 '*' shift 48 ID shift 49 CONSTANT shift 50 . error d1103 1 a1103 1 expr goto 92 d1107 13 a1119 14 expr : expr . '+' $$6 expr (41) expr : expr . '-' $$6 expr (42) expr : expr . '*' $$6 expr (43) expr : expr . '%' $$6 expr (44) expr : expr . '/' $$6 expr (45) statement : IF '(' $$6 expr . ')' THEN $$8 statement ELSE $$9 statement (53) statement : IF '(' $$6 expr . ')' THEN $$8 statement (54) '+' shift 60 '-' shift 61 '*' shift 62 '/' shift 63 '%' shift 64 ')' shift 93 d1124 1 a1124 2 statement : IF '(' $$6 expr ')' . THEN $$8 statement ELSE $$9 statement (53) statement : IF '(' $$6 expr ')' . THEN $$8 statement (54) d1126 1 a1126 2 THEN shift 94 . error d1130 2 a1131 3 statement : IF '(' $$6 expr ')' THEN . $$8 statement ELSE $$9 statement (53) statement : IF '(' $$6 expr ')' THEN . $$8 statement (54) $$8 : . (51) d1133 4 a1136 1 . reduce 51 d1138 1 a1138 1 $$8 goto 95 a1140 1 95: shift/reduce conflict (shift 49, reduce 1) on ID d1142 45 a1186 2 statement : IF '(' $$6 expr ')' THEN $$8 . statement ELSE $$9 statement (53) statement : IF '(' $$6 expr ')' THEN $$8 . statement (54) d1188 2 a1189 1 $$10 : . (55) a1190 3 '*' shift 48 ID [trial] shift 49 CONSTANT shift 50 d1196 1 a1196 1 IF shift 83 d1198 1 d1200 3 a1202 1 '{' reduce 55 d1204 2 a1205 3 expr goto 84 decl goto 85 statement goto 96 d1211 2 a1212 22 $$10 goto 87 96: shift/reduce conflict (shift 97, reduce 54) on ELSE state 96 statement : IF '(' $$6 expr ')' THEN $$8 statement . ELSE $$9 statement (53) statement : IF '(' $$6 expr ')' THEN $$8 statement . (54) ELSE [trial] shift 97 '*' reduce 54 ID reduce 54 CONSTANT reduce 54 EXTERN reduce 54 REGISTER reduce 54 STATIC reduce 54 CONST reduce 54 VOLATILE reduce 54 IF reduce 54 ELSE [trial] reduce 54 CLCL reduce 54 '{' reduce 54 '}' reduce 54 d1215 33 a1247 12 state 97 statement : IF '(' $$6 expr ')' THEN $$8 statement ELSE . $$9 statement (53) $$9 : . (52) . reduce 52 $$9 goto 98 98: shift/reduce conflict (shift 49, reduce 1) on ID state 98 statement : IF '(' $$6 expr ')' THEN $$8 statement ELSE $$9 . statement (53) d1249 2 a1250 1 $$10 : . (55) a1251 3 '*' shift 48 ID [trial] shift 49 CONSTANT shift 50 d1257 1 a1257 1 IF shift 83 d1259 1 d1261 3 a1263 1 '{' reduce 55 d1265 2 a1266 3 expr goto 84 decl goto 85 statement goto 99 d1272 2 a1273 1 $$10 goto 87 d1276 2 a1277 2 state 99 statement : IF '(' $$6 expr ')' THEN $$8 statement ELSE $$9 statement . (53) d1279 1 a1279 1 . reduce 53 d1282 12 a1293 10 State 12 contains 2 shift/reduce conflicts. State 23 contains 1 shift/reduce conflict. State 35 contains 1 shift/reduce conflict. State 41 contains 1 shift/reduce conflict. State 43 contains 1 shift/reduce conflict. State 45 contains 2 shift/reduce conflicts. State 76 contains 1 shift/reduce conflict. State 95 contains 1 shift/reduce conflict. State 96 contains 1 shift/reduce conflict. State 98 contains 1 shift/reduce conflict. d1296 2 a1297 2 29 terminals, 29 nonterminals 60 grammar rules, 100 states d1359 2 @ 1.1.1.1.2.1 log @Sync with HEAD @ text @d19 1 a19 1 10 decl : decl_specs declarator_list ';' d21 1 a21 1 11 $$3 : d23 1 a23 1 12 decl : decl_specs declarator $$3 block_statement d25 1 a25 2 13 decl_specs : decl_spec 14 | decl_specs $$2 decl_spec d27 2 a28 2 15 cv_quals : 16 | cv_quals cv_qual d30 2 a31 5 17 decl_spec : cv_qual 18 | typename 19 | EXTERN 20 | REGISTER 21 | STATIC d33 5 a37 2 22 cv_qual : CONST 23 | VOLATILE d39 2 a40 1 24 $$4 : d44 1 a44 2 26 declarator_list : declarator_list ',' $$4 $$5 declarator 27 | declarator d46 2 a47 2 28 declarator : 29 | ID d49 2 a50 1 30 $$6 : d54 1 a54 4 32 declarator : '(' $$6 $$7 declarator ')' 33 | '*' cv_quals $$4 $$5 declarator 34 | declarator '[' $$4 expr ']' 35 | declarator '(' $$4 formal_arg_list ')' cv_quals d56 4 a59 2 36 formal_arg_list : 37 | nonempty_formal_arg_list d61 2 a62 2 38 nonempty_formal_arg_list : nonempty_formal_arg_list ',' $$6 formal_arg 39 | formal_arg d64 2 a65 1 40 formal_arg : decl_specs declarator d67 1 a67 8 41 expr : expr '+' $$6 expr 42 | expr '-' $$6 expr 43 | expr '*' $$6 expr 44 | expr '%' $$6 expr 45 | expr '/' $$6 expr 46 | '*' $$2 expr 47 | ID 48 | CONSTANT d69 8 a76 2 49 statement : decl 50 | expr ';' d78 1 a78 1 51 $$8 : d80 1 a80 1 52 $$9 : d82 1 a82 2 53 statement : IF '(' $$6 expr ')' THEN $$8 statement ELSE $$9 statement 54 | IF '(' $$6 expr ')' THEN $$8 statement d84 1 a84 1 55 $$10 : d86 1 a86 1 56 statement : $$10 block_statement d88 2 a89 2 57 statement_list : 58 | statement_list $$2 statement d91 8 a98 1 59 block_statement : '{' $$2 statement_list '}' d163 1 a163 1 decl_spec : EXTERN . (19) d165 1 a165 1 . reduce 19 d169 1 a169 1 decl_spec : REGISTER . (20) d171 1 a171 1 . reduce 20 d175 1 a175 1 decl_spec : STATIC . (21) d177 1 a177 1 . reduce 21 d181 1 a181 1 cv_qual : CONST . (22) d183 1 a183 1 . reduce 22 d187 1 a187 1 cv_qual : VOLATILE . (23) d189 1 a189 1 . reduce 23 a203 2 12: shift/reduce conflict (shift 18, reduce 28) on '(' 12: shift/reduce conflict (shift 19, reduce 8) on ID d205 3 a207 3 decl : decl_specs . declarator_list ';' (10) decl : decl_specs . declarator $$3 block_statement (12) decl_specs : decl_specs . $$2 decl_spec (14) a208 1 declarator : . (28) d210 1 a210 15 '*' shift 17 '(' [trial] shift 18 ID [trial] shift 19 '(' [trial] reduce 28 '[' reduce 28 ID [trial] reduce 8 EXTERN reduce 8 REGISTER reduce 8 STATIC reduce 8 CONST reduce 8 VOLATILE reduce 8 CLCL reduce 8 ';' reduce 28 ',' reduce 28 '{' reduce 28 d212 1 a212 3 declarator_list goto 20 declarator goto 21 $$2 goto 22 d216 1 a216 1 decl_specs : decl_spec . (13) d218 1 a218 1 . reduce 13 d222 1 a222 1 decl_spec : typename . (18) d224 1 a224 1 . reduce 18 d228 1 a228 1 decl_spec : cv_qual . (17) d230 1 a230 1 . reduce 17 d237 1 a237 1 ID shift 23 d241 1 d243 3 a245 50 declarator : '*' . cv_quals $$4 $$5 declarator (33) cv_quals : . (15) . reduce 15 cv_quals goto 24 state 18 declarator : '(' . $$6 $$7 declarator ')' (32) $$6 : . (30) . reduce 30 $$6 goto 25 state 19 declarator : ID . (29) . reduce 29 state 20 decl : decl_specs declarator_list . ';' (10) declarator_list : declarator_list . ',' $$4 $$5 declarator (26) ';' shift 26 ',' shift 27 . error state 21 decl : decl_specs declarator . $$3 block_statement (12) declarator_list : declarator . (27) declarator : declarator . '[' $$4 expr ']' (34) declarator : declarator . '(' $$4 formal_arg_list ')' cv_quals (35) $$3 : . (11) '(' shift 28 '[' shift 29 ';' reduce 27 ',' reduce 27 '{' reduce 11 $$3 goto 30 state 22 decl_specs : decl_specs $$2 . decl_spec (14) d247 1 d255 8 a262 1 ID reduce 1 d264 1 a264 1 decl_spec goto 31 d268 1 d271 2 a272 2 23: shift/reduce conflict (shift 32, reduce 4) on CLCL state 23 d276 1 a276 1 CLCL [trial] shift 32 d293 34 a326 4 state 24 cv_quals : cv_quals . cv_qual (16) declarator : '*' cv_quals . $$4 $$5 declarator (33) $$4 : . (24) d328 1 a328 10 CONST shift 8 VOLATILE shift 9 '*' reduce 24 '(' reduce 24 '[' reduce 24 ID reduce 24 ';' reduce 24 ',' reduce 24 ')' reduce 24 '{' reduce 24 d330 1 a330 2 cv_qual goto 33 $$4 goto 34 d333 2 a334 2 state 25 declarator : '(' $$6 . $$7 declarator ')' (32) d339 16 a354 1 $$7 goto 35 d358 5 a362 1 decl : decl_specs declarator_list ';' . (10) d364 7 a370 1 . reduce 10 d374 3 a376 2 declarator_list : declarator_list ',' . $$4 $$5 declarator (26) $$4 : . (24) d378 10 a387 1 . reduce 24 d389 2 a390 1 $$4 goto 36 d394 2 a395 2 declarator : declarator '(' . $$4 formal_arg_list ')' cv_quals (35) $$4 : . (24) d397 1 a397 1 . reduce 24 d399 1 a399 1 $$4 goto 37 d403 1 a403 4 declarator : declarator '[' . $$4 expr ']' (34) $$4 : . (24) . reduce 24 d405 1 a405 1 $$4 goto 38 d409 2 a410 1 decl : decl_specs declarator $$3 . block_statement (12) d412 1 a412 2 '{' shift 39 . error d414 1 a414 1 block_statement goto 40 d418 2 a419 1 decl_specs : decl_specs $$2 decl_spec . (14) d421 3 a423 1 . reduce 14 d427 4 a430 1 opt_scope : opt_scope ID CLCL . (3) d432 1 a432 1 . reduce 3 d436 4 a439 1 cv_quals : cv_quals cv_qual . (16) d441 1 a441 1 . reduce 16 d445 1 a445 2 declarator : '*' cv_quals $$4 . $$5 declarator (33) $$5 : . (25) d447 1 a447 3 . reduce 25 $$5 goto 41 a449 1 35: shift/reduce conflict (shift 18, reduce 28) on '(' d451 2 a452 2 declarator : '(' $$6 $$7 . declarator ')' (32) declarator : . (28) d454 1 a454 6 '*' shift 17 '(' [trial] shift 18 ID shift 19 '(' [trial] reduce 28 '[' reduce 28 ')' reduce 28 d456 1 a456 1 declarator goto 42 d459 1 d461 2 a462 2 declarator_list : declarator_list ',' $$4 . $$5 declarator (26) $$5 : . (25) d464 6 a469 1 . reduce 25 d471 1 a471 1 $$5 goto 43 d475 10 a484 1 declarator : declarator '(' $$4 . formal_arg_list ')' cv_quals (35) d486 1 a486 1 formal_arg_list : . (36) d495 1 a495 1 ')' reduce 36 d497 2 a498 2 formal_arg goto 44 decl_specs goto 45 d503 2 a504 2 formal_arg_list goto 46 nonempty_formal_arg_list goto 47 d507 2 a508 2 state 38 declarator : declarator '[' $$4 . expr ']' (34) d510 3 a512 3 '*' shift 48 ID shift 49 CONSTANT shift 50 d515 1 a515 1 expr goto 51 d518 2 a519 2 state 39 block_statement : '{' . $$2 statement_list '}' (59) d524 1 a524 1 $$2 goto 52 d527 2 a528 2 state 40 decl : decl_specs declarator $$3 block_statement . (12) d530 1 a530 1 . reduce 12 d533 4 a536 4 41: shift/reduce conflict (shift 18, reduce 28) on '(' state 41 declarator : '*' cv_quals $$4 $$5 . declarator (33) declarator : . (28) d538 9 a546 9 '*' shift 17 '(' [trial] shift 18 ID shift 19 '(' [trial] reduce 28 '[' reduce 28 ';' reduce 28 ',' reduce 28 ')' reduce 28 '{' reduce 28 d548 1 a548 1 declarator goto 53 d551 8 a558 8 state 42 declarator : '(' $$6 $$7 declarator . ')' (32) declarator : declarator . '[' $$4 expr ']' (34) declarator : declarator . '(' $$4 formal_arg_list ')' cv_quals (35) '(' shift 28 '[' shift 29 ')' shift 54 d562 4 a565 4 43: shift/reduce conflict (shift 18, reduce 28) on '(' state 43 declarator_list : declarator_list ',' $$4 $$5 . declarator (26) declarator : . (28) d567 7 a573 7 '*' shift 17 '(' [trial] shift 18 ID shift 19 '(' [trial] reduce 28 '[' reduce 28 ';' reduce 28 ',' reduce 28 d575 1 a575 1 declarator goto 55 d578 2 a579 2 state 44 nonempty_formal_arg_list : formal_arg . (39) d581 1 a581 1 . reduce 39 d584 3 a586 5 45: shift/reduce conflict (shift 18, reduce 28) on '(' 45: shift/reduce conflict (shift 19, reduce 8) on ID state 45 decl_specs : decl_specs . $$2 decl_spec (14) formal_arg : decl_specs . declarator (40) a587 1 declarator : . (28) d589 1 a589 14 '*' shift 17 '(' [trial] shift 18 ID [trial] shift 19 '(' [trial] reduce 28 '[' reduce 28 ID [trial] reduce 8 EXTERN reduce 8 REGISTER reduce 8 STATIC reduce 8 CONST reduce 8 VOLATILE reduce 8 CLCL reduce 8 ',' reduce 28 ')' reduce 28 d591 1 a591 2 declarator goto 56 $$2 goto 22 d594 2 a595 2 state 46 declarator : declarator '(' $$4 formal_arg_list . ')' cv_quals (35) d597 1 a597 1 ')' shift 57 d601 3 a603 3 state 47 formal_arg_list : nonempty_formal_arg_list . (37) nonempty_formal_arg_list : nonempty_formal_arg_list . ',' $$6 formal_arg (38) d605 2 a606 2 ',' shift 58 ')' reduce 37 d609 2 a610 2 state 48 expr : '*' . $$2 expr (46) d615 1 a615 7 $$2 goto 59 state 49 expr : ID . (47) . reduce 47 d619 1 a619 1 expr : CONSTANT . (48) d625 3 a627 14 declarator : declarator '[' $$4 expr . ']' (34) expr : expr . '+' $$6 expr (41) expr : expr . '-' $$6 expr (42) expr : expr . '*' $$6 expr (43) expr : expr . '%' $$6 expr (44) expr : expr . '/' $$6 expr (45) '+' shift 60 '-' shift 61 '*' shift 62 '/' shift 63 '%' shift 64 ']' shift 65 . error d631 14 a644 2 block_statement : '{' $$2 . statement_list '}' (59) statement_list : . (57) a645 1 . reduce 57 d647 3 a649 1 statement_list goto 66 d651 1 d653 1 a653 11 state 53 declarator : '*' cv_quals $$4 $$5 declarator . (33) declarator : declarator . '[' $$4 expr ']' (34) declarator : declarator . '(' $$4 formal_arg_list ')' cv_quals (35) '(' shift 28 '[' shift 29 ';' reduce 33 ',' reduce 33 ')' reduce 33 '{' reduce 33 d657 10 a666 3 declarator : '(' $$6 $$7 declarator ')' . (32) . reduce 32 d670 3 a672 8 declarator_list : declarator_list ',' $$4 $$5 declarator . (26) declarator : declarator . '[' $$4 expr ']' (34) declarator : declarator . '(' $$4 formal_arg_list ')' cv_quals (35) '(' shift 28 '[' shift 29 ';' reduce 26 ',' reduce 26 d676 8 a683 8 declarator : declarator . '[' $$4 expr ']' (34) declarator : declarator . '(' $$4 formal_arg_list ')' cv_quals (35) formal_arg : decl_specs declarator . (40) '(' shift 28 '[' shift 29 ',' reduce 40 ')' reduce 40 d686 1 d688 4 a691 2 declarator : declarator '(' $$4 formal_arg_list ')' . cv_quals (35) cv_quals : . (15) d693 13 a705 1 . reduce 15 d707 5 a711 1 cv_quals goto 67 d715 2 a716 2 nonempty_formal_arg_list : nonempty_formal_arg_list ',' . $$6 formal_arg (38) $$6 : . (30) d718 1 a718 1 . reduce 30 d720 1 a720 1 $$6 goto 68 d724 2 a725 1 expr : '*' $$2 . expr (46) d727 1 a727 4 '*' shift 48 ID shift 49 CONSTANT shift 50 . error d729 1 a729 1 expr goto 69 d733 1 a733 2 expr : expr '+' . $$6 expr (41) $$6 : . (30) d735 4 a738 1 . reduce 30 d740 1 a740 1 $$6 goto 70 d744 2 a745 2 expr : expr '-' . $$6 expr (42) $$6 : . (30) d747 1 a747 1 . reduce 30 d749 1 a749 1 $$6 goto 71 d753 2 a754 2 expr : expr '*' . $$6 expr (43) $$6 : . (30) d756 1 a756 1 . reduce 30 d758 1 a758 1 $$6 goto 72 d762 2 a763 2 expr : expr '/' . $$6 expr (45) $$6 : . (30) d765 1 a765 1 . reduce 30 d767 1 a767 1 $$6 goto 73 d771 2 a772 2 expr : expr '%' . $$6 expr (44) $$6 : . (30) d774 1 a774 1 . reduce 30 d776 1 a776 1 $$6 goto 74 d780 2 a781 1 declarator : declarator '[' $$4 expr ']' . (34) d783 3 a785 1 . reduce 34 d789 8 a796 2 statement_list : statement_list . $$2 statement (58) block_statement : '{' $$2 statement_list . '}' (59) d799 1 a799 1 '}' shift 75 d812 1 a812 1 $$2 goto 76 d815 19 a833 3 state 67 cv_quals : cv_quals . cv_qual (16) declarator : declarator '(' $$4 formal_arg_list ')' cv_quals . (35) d837 6 a842 6 '(' reduce 35 '[' reduce 35 ';' reduce 35 ',' reduce 35 ')' reduce 35 '{' reduce 35 d844 1 a844 1 cv_qual goto 33 d847 2 a848 2 state 68 nonempty_formal_arg_list : nonempty_formal_arg_list ',' $$6 . formal_arg (38) d859 2 a860 2 formal_arg goto 77 decl_specs goto 45 d867 7 a873 7 state 69 expr : expr . '+' $$6 expr (41) expr : expr . '-' $$6 expr (42) expr : expr . '*' $$6 expr (43) expr : expr . '%' $$6 expr (44) expr : expr . '/' $$6 expr (45) expr : '*' $$2 expr . (46) d875 1 a875 1 . reduce 46 d878 2 a879 2 state 70 expr : expr '+' $$6 . expr (41) d881 3 a883 3 '*' shift 48 ID shift 49 CONSTANT shift 50 d886 1 a886 1 expr goto 78 d889 2 a890 2 state 71 expr : expr '-' $$6 . expr (42) d892 3 a894 3 '*' shift 48 ID shift 49 CONSTANT shift 50 d897 1 a897 1 expr goto 79 d900 2 a901 2 state 72 expr : expr '*' $$6 . expr (43) d903 3 a905 3 '*' shift 48 ID shift 49 CONSTANT shift 50 d908 1 a908 1 expr goto 80 d911 2 a912 2 state 73 expr : expr '/' $$6 . expr (45) d914 3 a916 3 '*' shift 48 ID shift 49 CONSTANT shift 50 d919 1 a919 1 expr goto 81 d922 2 a923 2 state 74 expr : expr '%' $$6 . expr (44) d925 3 a927 3 '*' shift 48 ID shift 49 CONSTANT shift 50 d930 1 a930 1 expr goto 82 d933 2 a934 2 state 75 block_statement : '{' $$2 statement_list '}' . (59) d936 1 a936 1 . reduce 59 d939 3 a941 3 76: shift/reduce conflict (shift 49, reduce 1) on ID state 76 statement_list : statement_list $$2 . statement (58) d943 2 a944 1 $$10 : . (55) a945 3 '*' shift 48 ID [trial] shift 49 CONSTANT shift 50 d951 1 a951 1 IF shift 83 d953 1 d955 3 a957 1 '{' reduce 55 d959 2 a960 3 expr goto 84 decl goto 85 statement goto 86 d966 2 a967 1 $$10 goto 87 d970 9 a978 2 state 77 nonempty_formal_arg_list : nonempty_formal_arg_list ',' $$6 formal_arg . (38) a979 1 . reduce 38 d981 2 d984 1 a984 16 state 78 expr : expr . '+' $$6 expr (41) expr : expr '+' $$6 expr . (41) expr : expr . '-' $$6 expr (42) expr : expr . '*' $$6 expr (43) expr : expr . '%' $$6 expr (44) expr : expr . '/' $$6 expr (45) '*' shift 62 '/' shift 63 '%' shift 64 '+' reduce 41 '-' reduce 41 ';' reduce 41 ')' reduce 41 ']' reduce 41 d987 11 a997 11 state 79 expr : expr . '+' $$6 expr (41) expr : expr . '-' $$6 expr (42) expr : expr '-' $$6 expr . (42) expr : expr . '*' $$6 expr (43) expr : expr . '%' $$6 expr (44) expr : expr . '/' $$6 expr (45) '*' shift 62 '/' shift 63 '%' shift 64 a1004 22 state 80 expr : expr . '+' $$6 expr (41) expr : expr . '-' $$6 expr (42) expr : expr . '*' $$6 expr (43) expr : expr '*' $$6 expr . (43) expr : expr . '%' $$6 expr (44) expr : expr . '/' $$6 expr (45) . reduce 43 state 81 expr : expr . '+' $$6 expr (41) expr : expr . '-' $$6 expr (42) expr : expr . '*' $$6 expr (43) expr : expr . '%' $$6 expr (44) expr : expr . '/' $$6 expr (45) expr : expr '/' $$6 expr . (45) . reduce 45 d1006 15 a1020 8 expr : expr . '+' $$6 expr (41) expr : expr . '-' $$6 expr (42) expr : expr . '*' $$6 expr (43) expr : expr . '%' $$6 expr (44) expr : expr '%' $$6 expr . (44) expr : expr . '/' $$6 expr (45) . reduce 44 d1024 6 a1029 2 statement : IF . '(' $$6 expr ')' THEN $$8 statement ELSE $$9 statement (53) statement : IF . '(' $$6 expr ')' THEN $$8 statement (54) d1031 1 a1031 2 '(' shift 88 . error d1035 8 a1042 14 expr : expr . '+' $$6 expr (41) expr : expr . '-' $$6 expr (42) expr : expr . '*' $$6 expr (43) expr : expr . '%' $$6 expr (44) expr : expr . '/' $$6 expr (45) statement : expr . ';' (50) '+' shift 60 '-' shift 61 '*' shift 62 '/' shift 63 '%' shift 64 ';' shift 89 . error d1046 6 a1051 1 statement : decl . (49) d1053 1 a1053 1 . reduce 49 d1057 2 a1058 1 statement_list : statement_list $$2 statement . (58) d1060 2 a1061 1 . reduce 58 d1065 1 a1065 1 statement : $$10 . block_statement (56) d1067 1 a1067 4 '{' shift 39 . error block_statement goto 90 d1071 1 a1071 3 statement : IF '(' . $$6 expr ')' THEN $$8 statement ELSE $$9 statement (53) statement : IF '(' . $$6 expr ')' THEN $$8 statement (54) $$6 : . (30) d1073 1 a1073 1 . reduce 30 a1074 1 $$6 goto 91 d1076 2 d1079 4 a1082 2 state 89 statement : expr ';' . (50) d1084 1 a1084 1 . reduce 50 d1088 4 a1091 1 statement : $$10 block_statement . (56) d1093 1 a1093 1 . reduce 56 d1097 3 a1099 2 statement : IF '(' $$6 . expr ')' THEN $$8 statement ELSE $$9 statement (53) statement : IF '(' $$6 . expr ')' THEN $$8 statement (54) d1101 1 a1101 4 '*' shift 48 ID shift 49 CONSTANT shift 50 . error d1103 1 a1103 1 expr goto 92 d1107 13 a1119 14 expr : expr . '+' $$6 expr (41) expr : expr . '-' $$6 expr (42) expr : expr . '*' $$6 expr (43) expr : expr . '%' $$6 expr (44) expr : expr . '/' $$6 expr (45) statement : IF '(' $$6 expr . ')' THEN $$8 statement ELSE $$9 statement (53) statement : IF '(' $$6 expr . ')' THEN $$8 statement (54) '+' shift 60 '-' shift 61 '*' shift 62 '/' shift 63 '%' shift 64 ')' shift 93 d1124 1 a1124 2 statement : IF '(' $$6 expr ')' . THEN $$8 statement ELSE $$9 statement (53) statement : IF '(' $$6 expr ')' . THEN $$8 statement (54) d1126 1 a1126 2 THEN shift 94 . error d1130 2 a1131 3 statement : IF '(' $$6 expr ')' THEN . $$8 statement ELSE $$9 statement (53) statement : IF '(' $$6 expr ')' THEN . $$8 statement (54) $$8 : . (51) d1133 4 a1136 1 . reduce 51 d1138 1 a1138 1 $$8 goto 95 a1140 1 95: shift/reduce conflict (shift 49, reduce 1) on ID d1142 45 a1186 2 statement : IF '(' $$6 expr ')' THEN $$8 . statement ELSE $$9 statement (53) statement : IF '(' $$6 expr ')' THEN $$8 . statement (54) d1188 2 a1189 1 $$10 : . (55) a1190 3 '*' shift 48 ID [trial] shift 49 CONSTANT shift 50 d1196 1 a1196 1 IF shift 83 d1198 1 d1200 3 a1202 1 '{' reduce 55 d1204 2 a1205 3 expr goto 84 decl goto 85 statement goto 96 d1211 2 a1212 22 $$10 goto 87 96: shift/reduce conflict (shift 97, reduce 54) on ELSE state 96 statement : IF '(' $$6 expr ')' THEN $$8 statement . ELSE $$9 statement (53) statement : IF '(' $$6 expr ')' THEN $$8 statement . (54) ELSE [trial] shift 97 '*' reduce 54 ID reduce 54 CONSTANT reduce 54 EXTERN reduce 54 REGISTER reduce 54 STATIC reduce 54 CONST reduce 54 VOLATILE reduce 54 IF reduce 54 ELSE [trial] reduce 54 CLCL reduce 54 '{' reduce 54 '}' reduce 54 d1215 33 a1247 12 state 97 statement : IF '(' $$6 expr ')' THEN $$8 statement ELSE . $$9 statement (53) $$9 : . (52) . reduce 52 $$9 goto 98 98: shift/reduce conflict (shift 49, reduce 1) on ID state 98 statement : IF '(' $$6 expr ')' THEN $$8 statement ELSE $$9 . statement (53) d1249 2 a1250 1 $$10 : . (55) a1251 3 '*' shift 48 ID [trial] shift 49 CONSTANT shift 50 d1257 1 a1257 1 IF shift 83 d1259 1 d1261 3 a1263 1 '{' reduce 55 d1265 2 a1266 3 expr goto 84 decl goto 85 statement goto 99 d1272 2 a1273 1 $$10 goto 87 d1276 2 a1277 2 state 99 statement : IF '(' $$6 expr ')' THEN $$8 statement ELSE $$9 statement . (53) d1279 1 a1279 1 . reduce 53 d1282 12 a1293 10 State 12 contains 2 shift/reduce conflicts. State 23 contains 1 shift/reduce conflict. State 35 contains 1 shift/reduce conflict. State 41 contains 1 shift/reduce conflict. State 43 contains 1 shift/reduce conflict. State 45 contains 2 shift/reduce conflicts. State 76 contains 1 shift/reduce conflict. State 95 contains 1 shift/reduce conflict. State 96 contains 1 shift/reduce conflict. State 98 contains 1 shift/reduce conflict. d1296 2 a1297 2 29 terminals, 29 nonterminals 60 grammar rules, 100 states d1359 2 @ 1.1.1.2 log @2017-02-01 Thomas E. Dickey * test/btyacc/expr.oxout.error, test/btyacc/expr.oxout.output, test/btyacc/expr.oxout.tab.c, test/btyacc/expr.oxout.tab.h, test/yacc/expr.oxout.error, test/yacc/expr.oxout.output, test/yacc/expr.oxout.tab.c, test/yacc/expr.oxout.tab.h: RCS_BASE * package/debian/copyright: update copyright * reader.c, defs.h, main.c: avoid using regex.h since some low-end platforms do not have this * test/expr.oxout.y: RCS_BASE * configure: regen * aclocal.m4: quiet a strict gcc warning in CF_MKSTEMP 2017-02-01 Tom.Shields * main.c, reader.c, defs.h: process #line directives, like bison and flex 2017-02-01 Thomas E. Dickey * VERSION, package/byacc.spec, package/debian/changelog, package/mingw-byacc.spec, package/pkgsrc/Makefile: bump 2016-12-31 Thomas E. Dickey * config.guess, config.sub: 2017-01-01 2016-12-02 Thomas E. Dickey * test/btyacc/quote_calc4-s.tab.c, test/btyacc/varsyntax_calc1.tab.c, test/btyacc/error.tab.c, test/btyacc/grammar.tab.c, test/btyacc/inherit0.tab.c, test/btyacc/inherit1.tab.c, test/btyacc/inherit2.tab.c, test/btyacc/ok_syntax1.tab.c, test/btyacc/pure_calc.tab.c, test/btyacc/pure_error.tab.c, test/btyacc/quote_calc-s.tab.c, test/btyacc/quote_calc.tab.c, test/btyacc/quote_calc2-s.tab.c, test/btyacc/quote_calc2.tab.c, test/btyacc/quote_calc3-s.tab.c, test/btyacc/quote_calc3.tab.c, test/btyacc/quote_calc4.tab.c, test/btyacc/calc.tab.c, test/btyacc/calc1.tab.c, test/btyacc/calc2.tab.c, test/btyacc/calc3.tab.c, test/btyacc/code_calc.code.c, test/btyacc/code_error.code.c, test/btyacc/empty.tab.c, test/btyacc/err_inherit3.tab.c, test/btyacc/err_inherit4.tab.c, test/btyacc/err_syntax10.tab.c, test/btyacc/err_syntax11.tab.c, test/btyacc/err_syntax12.tab.c, test/btyacc/err_syntax18.tab.c, test/btyacc/err_syntax20.tab.c, test/btyacc/rename_debug.c, test/btyacc/btyacc_calc1.tab.c, test/btyacc/btyacc_demo.tab.c, test/btyacc/btyacc_destroy1.tab.c, test/btyacc/btyacc_destroy2.tab.c, test/btyacc/btyacc_destroy3.tab.c, btyaccpar.c: regen * btyaccpar.skel: changes from NetBSD + use YYINT rather than short in btyaccpar.skel (some of this had already been done by Tom Shields) + remove some casts of malloc/realloc * yaccpar.c, yaccpar.skel, output.c: changes from NetBSD - Add some more bison stuff to make the mesa/gallium parser work: %initial-action (add missing source struct member in location) %debug (unimplemented) %error-verbose (unimplemented) This changes some existing code: + yylloc is now a pointer, so + the first parameter to YYERROR_DECL() is a pointer + struct YYLTYPE now has a "source" field * test/btyacc/btyacc_demo.tab.h, test/btyacc/code_calc.tab.c, test/btyacc/code_error.tab.c, test/btyacc/err_inherit4.tab.h: regen * btyaccpar.c, btyaccpar.skel, reader.c: changes from NetBSD - Add some more bison stuff to make the mesa/gallium parser work: %initial-action (add missing source struct member in location) %debug (unimplemented) %error-verbose (unimplemented) This changes some existing code: + yylloc is now a pointer, so + the first parameter to YYERROR_DECL() is a pointer + struct YYLTYPE now has a "source" field * reader.c: fix from NetBSD: correct off-by-one when adding a null in copy_param() * reader.c: adapted from NetBSD - Convert *most* error fingerprints to: -unterminated_arglist(int a_lineno, char *a_line, char *a_cptr) +unterminated_arglist(const struct ainfo *a) - Cast new args to unsigned char * defs.h: changes from NetBSD - Add some more bison stuff to make the mesa/gallium parser work: %initial-action (add missing source struct member in location) %debug (unimplemented) %error-verbose (unimplemented) This changes some existing code: + yylloc is now a pointer, so + the first parameter to YYERROR_DECL() is a pointer + struct YYLTYPE now has a "source" field * defs.h: adapted from NetBSD - Convert *most* error fingerprints to: -unterminated_arglist(int a_lineno, char *a_line, char *a_cptr) +unterminated_arglist(const struct ainfo *a) - Cast new args to unsigned char * main.c: changes from NetBSD - Add some more bison stuff to make the mesa/gallium parser work: %initial-action (add missing source struct member in location) %debug (unimplemented) %error-verbose (unimplemented) This changes some existing code: + yylloc is now a pointer, so + the first parameter to YYERROR_DECL() is a pointer + struct YYLTYPE now has a "source" field * error.c: adapted from NetBSD - Convert *most* error fingerprints to: -unterminated_arglist(int a_lineno, char *a_line, char *a_cptr) +unterminated_arglist(const struct ainfo *a) - Cast new args to unsigned char * mstring.c: adapted change from NetBSD to add casts for ctype macros * test/btyacc/btyacc_demo.tab.h, test/btyacc/err_inherit4.tab.h: regen * output.c: reorder to eliminate a forward-reference 2016-12-02 Tom.Shields * output.c: modify output to enable compilation of a lexer generated by flex (using "%option bison-bridge" and "%option bison-locations") to be used with a parser generated by b(t)yacc (using directives "%locations" and "%pure-parser"). 2016-12-02 Thomas E. Dickey * configure: regen * aclocal.m4: Improved autoconf macros CF_CC_ENV_FLAGS + improve split between compiler and options, prompted by report where user had "ccache" before the compiler + leave non-preprocessor options in "$CC" (but still copy them to "$CFLAGS" since that's where they should be) CF_GNU_SOURCE,v + recent glibc (Debian 2.23-4 for example) has misordered ifdef/checks for new symbol _DEFAULT_SOURCE, producing warning messages when only _GNU_SOURCE is defined. Add a followup check to define _DEFAULT_SOURCE. CF_XOPEN_SOURCE + add "uclinux" to list of Linux's (patch by Yann E. Morin) + use _GNU_SOURCE for cygwin headers + build-fixes for OS/2 * VERSION, package/byacc.spec, package/debian/changelog, package/mingw-byacc.spec, package/pkgsrc/Makefile: bump 2016-11-20 Thomas E. Dickey * config.sub: 2016-11-19 * config.guess: 2016-10-02 2016-06-06 Thomas E. Dickey * configure: regen * aclocal.m4: improved autoconf macros: CF_CC_ENV_FLAGS - don't limit the check to -I, -U and -D options, since the added options can include various compiler options before and after preprocessor options. CF_PROG_LINT - add cpplint to programs to use; drop ad hoc tdlint and alint. * VERSION, package/byacc.spec, package/debian/changelog, package/mingw-byacc.spec, package/pkgsrc/Makefile: bump * lalr.c: indented * btyaccpar.c: regen * skel2c: adjust whitespace so that generated skeleton will follow the same format as other code * mkpar.c, verbose.c, lr0.c, reader.c, error.c, output.c: indented * reader.c: fix two compiler warnings * test/btyacc/inherit2.tab.c, test/btyacc/ok_syntax1.tab.c, test/btyacc/pure_calc.tab.c, test/btyacc/pure_error.tab.c, test/btyacc/quote_calc-s.tab.c, test/btyacc/quote_calc.tab.c, test/btyacc/quote_calc2-s.tab.c, test/btyacc/quote_calc2.tab.c, test/btyacc/quote_calc3-s.tab.c, test/btyacc/quote_calc3.tab.c, test/btyacc/quote_calc4-s.tab.c, test/btyacc/quote_calc4.tab.c, test/btyacc/varsyntax_calc1.tab.c, test/btyacc/err_syntax12.tab.c, test/btyacc/err_syntax18.tab.c, test/btyacc/err_syntax20.tab.c, test/btyacc/error.tab.c, test/btyacc/grammar.tab.c, test/btyacc/inherit0.tab.c, test/btyacc/inherit1.tab.c, test/btyacc/btyacc_calc1.tab.c, test/btyacc/btyacc_demo.tab.c, test/btyacc/btyacc_destroy1.tab.c, test/btyacc/btyacc_destroy2.tab.c, test/btyacc/btyacc_destroy3.tab.c, test/btyacc/calc.tab.c, test/btyacc/calc1.tab.c, test/btyacc/calc2.tab.c, test/btyacc/calc3.tab.c, test/btyacc/code_calc.code.c, test/btyacc/code_error.code.c, test/btyacc/empty.tab.c, test/btyacc/err_inherit3.tab.c, test/btyacc/err_inherit4.tab.c, test/btyacc/err_syntax10.tab.c, test/btyacc/err_syntax11.tab.c, test/btyacc/rename_debug.c, btyaccpar.c, test/yacc/quote_calc2-s.tab.c, test/yacc/quote_calc2.tab.c, test/yacc/quote_calc3-s.tab.c, test/yacc/quote_calc3.tab.c, test/yacc/quote_calc4-s.tab.c, test/yacc/quote_calc4.tab.c, test/yacc/varsyntax_calc1.tab.c, test/yacc/err_syntax20.tab.c, test/yacc/error.tab.c, test/yacc/grammar.tab.c, test/yacc/ok_syntax1.tab.c, test/yacc/pure_calc.tab.c, test/yacc/pure_error.tab.c, test/yacc/quote_calc-s.tab.c, test/yacc/quote_calc.tab.c, test/yacc/calc.tab.c, test/yacc/calc1.tab.c, test/yacc/calc2.tab.c, test/yacc/calc3.tab.c, test/yacc/code_calc.code.c, test/yacc/code_error.code.c, test/yacc/empty.tab.c, test/yacc/err_syntax10.tab.c, test/yacc/err_syntax11.tab.c, test/yacc/err_syntax12.tab.c, test/yacc/err_syntax18.tab.c, test/yacc/rename_debug.c, yaccpar.c: regen 2016-06-06 Tom.Shields * btyaccpar.skel, yaccpar.skel: small fix for an edge case of initialized data in Chris Dodd's btyacc changes: "Avoid crash when input pops up an Action error at the first token" 2016-06-01 Thomas E. Dickey * test/yacc/quote_calc2-s.tab.c, test/yacc/quote_calc3-s.tab.c, test/yacc/quote_calc3.tab.c, test/yacc/quote_calc4-s.tab.c, test/yacc/quote_calc4.tab.c, test/yacc/varsyntax_calc1.tab.c, test/yacc/err_syntax18.tab.c, test/yacc/err_syntax20.tab.c, test/yacc/err_syntax24.error, test/yacc/error.tab.c, test/yacc/grammar.tab.c, test/yacc/ok_syntax1.tab.c, test/yacc/pure_calc.tab.c, test/yacc/pure_error.tab.c, test/yacc/quote_calc-s.tab.c, test/yacc/quote_calc.tab.c, test/yacc/quote_calc2.tab.c, test/yacc/calc.tab.c, test/yacc/calc1.tab.c, test/yacc/calc2.tab.c, test/yacc/calc3.tab.c, test/yacc/code_calc.code.c, test/yacc/code_calc.tab.c, test/yacc/code_calc.tab.h, test/yacc/code_error.code.c, test/yacc/empty.tab.c, test/yacc/err_syntax10.tab.c, test/yacc/err_syntax11.tab.c, test/yacc/err_syntax12.tab.c, test/yacc/rename_debug.c, yaccpar.c, test/btyacc/quote_calc-s.tab.c, test/btyacc/quote_calc.tab.c, test/btyacc/quote_calc2-s.tab.c, test/btyacc/quote_calc2.tab.c, test/btyacc/quote_calc3-s.tab.c, test/btyacc/quote_calc3.tab.c, test/btyacc/quote_calc4-s.tab.c, test/btyacc/quote_calc4.tab.c, test/btyacc/varsyntax_calc1.tab.c, test/btyacc/err_syntax13.tab.c, test/btyacc/err_syntax14.tab.c, test/btyacc/err_syntax15.tab.c, test/btyacc/err_syntax16.tab.c, test/btyacc/err_syntax17.tab.c, test/btyacc/err_syntax18.tab.c, test/btyacc/err_syntax19.tab.c, test/btyacc/err_syntax2.tab.c, test/btyacc/err_syntax20.tab.c, test/btyacc/err_syntax21.tab.c, test/btyacc/err_syntax22.tab.c, test/btyacc/err_syntax23.tab.c, test/btyacc/err_syntax24.error, test/btyacc/err_syntax24.tab.c, test/btyacc/err_syntax25.tab.c, test/btyacc/err_syntax26.tab.c, test/btyacc/err_syntax27.tab.c, test/btyacc/err_syntax3.tab.c, test/btyacc/err_syntax4.tab.c, test/btyacc/err_syntax5.tab.c, test/btyacc/err_syntax6.tab.c, test/btyacc/err_syntax7.tab.c, test/btyacc/err_syntax7a.tab.c, test/btyacc/err_syntax7b.tab.c, test/btyacc/err_syntax8.tab.c, test/btyacc/err_syntax8a.tab.c, test/btyacc/err_syntax9.tab.c, test/btyacc/error.tab.c, test/btyacc/grammar.tab.c, test/btyacc/inherit0.tab.c, test/btyacc/inherit1.tab.c, test/btyacc/inherit2.output, test/btyacc/inherit2.tab.c, test/btyacc/ok_syntax1.tab.c, test/btyacc/pure_calc.tab.c, test/btyacc/pure_error.tab.c, test/btyacc/btyacc_calc1.tab.c, test/btyacc/btyacc_demo.error, test/btyacc/btyacc_demo.output, test/btyacc/btyacc_demo.tab.c, test/btyacc/btyacc_destroy1.tab.c, test/btyacc/btyacc_destroy2.tab.c, test/btyacc/btyacc_destroy3.tab.c, test/btyacc/calc.tab.c, test/btyacc/calc1.tab.c, test/btyacc/calc2.tab.c, test/btyacc/calc3.tab.c, test/btyacc/code_calc.code.c, test/btyacc/code_calc.tab.c, test/btyacc/code_calc.tab.h, test/btyacc/code_error.code.c, test/btyacc/empty.tab.c, test/btyacc/err_inherit1.tab.c, test/btyacc/err_inherit2.tab.c, test/btyacc/err_inherit3.output, test/btyacc/err_inherit3.tab.c, test/btyacc/err_inherit4.output, test/btyacc/err_inherit4.tab.c, test/btyacc/err_inherit5.tab.c, test/btyacc/err_syntax1.tab.c, test/btyacc/err_syntax10.tab.c, test/btyacc/err_syntax11.tab.c, test/btyacc/err_syntax12.tab.c, test/btyacc/rename_debug.c, btyaccpar.c: regen 2016-06-01 Tom.Shields * btyaccpar.skel, defs.h, error.c, output.c, reader.c, test/code_calc.y, test/err_inherit4.y, test/run_make.sh, yaccpar.skel: fixes for issues in btyacc (report by Francis Andre): + correction to the placement of the #line directive for a %union specification + recovery of a set of casts originally added into btyaccpar.c rather than into btyaccpar.skel, and so are lost whenever building from scratch + Chris Dodd's btyacc improved handling of inherited attributes to eliminate implicit empty copy rules that are not necessary, and thereby avoiding the introduction of extra parsing ambiguity + Chris Dodd's added support for @@-N syntax to reference inherited position information + correction to bad interaction between %token-table and YYDEBUG, where YYDEBUG was required to be defined in order to compile the generated code + correction to yyname[] access in code included with YYDEBUG defined for single character symbols not recognized (e.g., input containing '&' character where grammar doesn't define that as a symbol) - map to existing "illegal-symbol" entry in byname[] + fixes to test/run_make.sh: skip test-err_* files; in the bison test phase skip additional files that contain features not supported by bison and inhibit new bison warning messages + minor changes to btyaccpar.skel & yaccpar.skel so they are more similar in their commonality; makes it easier to maintain the pair of files using vimdiff + changes to a couple of test cases for coverage of #3, #4 and #5 above 2016-06-01 Thomas E. Dickey * VERSION, package/byacc.spec, package/debian/changelog, package/mingw-byacc.spec, package/pkgsrc/Makefile: bump 2016-03-24 Thomas E. Dickey * reader.c: unused variable * package/pkgsrc/Makefile, package/debian/copyright: bump 2016-03-24 Jung-uk.Kim * main.c: correct logic for finding output suffix in the "-o" option, which matched the first occurrence of ".c" in the name in 2005-08-13 changes rather than at the end of the filename (patch by Jung-uk Kim) 2016-03-24 Thomas E. Dickey * aclocal.m4: update CF_WITH_MAN2HTML to use configured shell rather than /bin/sh * VERSION, package/byacc.spec, package/debian/changelog, package/mingw-byacc.spec, package/pkgsrc/Makefile: bump 2016-01-25 Thomas E. Dickey * config.guess, config.sub: 2016-01-01 @ text @d19 1 a19 1 10 decl : decl_specs declarator_list ';' d21 1 a21 1 11 $$3 : d23 1 a23 1 12 decl : decl_specs declarator $$3 block_statement d25 1 a25 2 13 decl_specs : decl_spec 14 | decl_specs $$2 decl_spec d27 2 a28 2 15 cv_quals : 16 | cv_quals cv_qual d30 2 a31 5 17 decl_spec : cv_qual 18 | typename 19 | EXTERN 20 | REGISTER 21 | STATIC d33 5 a37 2 22 cv_qual : CONST 23 | VOLATILE d39 2 a40 1 24 $$4 : d44 1 a44 2 26 declarator_list : declarator_list ',' $$4 $$5 declarator 27 | declarator d46 2 a47 2 28 declarator : 29 | ID d49 2 a50 1 30 $$6 : d54 1 a54 4 32 declarator : '(' $$6 $$7 declarator ')' 33 | '*' cv_quals $$4 $$5 declarator 34 | declarator '[' $$4 expr ']' 35 | declarator '(' $$4 formal_arg_list ')' cv_quals d56 4 a59 2 36 formal_arg_list : 37 | nonempty_formal_arg_list d61 2 a62 2 38 nonempty_formal_arg_list : nonempty_formal_arg_list ',' $$6 formal_arg 39 | formal_arg d64 2 a65 1 40 formal_arg : decl_specs declarator d67 1 a67 8 41 expr : expr '+' $$6 expr 42 | expr '-' $$6 expr 43 | expr '*' $$6 expr 44 | expr '%' $$6 expr 45 | expr '/' $$6 expr 46 | '*' $$2 expr 47 | ID 48 | CONSTANT d69 8 a76 2 49 statement : decl 50 | expr ';' d78 1 a78 1 51 $$8 : d80 1 a80 1 52 $$9 : d82 1 a82 2 53 statement : IF '(' $$6 expr ')' THEN $$8 statement ELSE $$9 statement 54 | IF '(' $$6 expr ')' THEN $$8 statement d84 1 a84 1 55 $$10 : d86 1 a86 1 56 statement : $$10 block_statement d88 2 a89 2 57 statement_list : 58 | statement_list $$2 statement d91 8 a98 1 59 block_statement : '{' $$2 statement_list '}' d163 1 a163 1 decl_spec : EXTERN . (19) d165 1 a165 1 . reduce 19 d169 1 a169 1 decl_spec : REGISTER . (20) d171 1 a171 1 . reduce 20 d175 1 a175 1 decl_spec : STATIC . (21) d177 1 a177 1 . reduce 21 d181 1 a181 1 cv_qual : CONST . (22) d183 1 a183 1 . reduce 22 d187 1 a187 1 cv_qual : VOLATILE . (23) d189 1 a189 1 . reduce 23 a203 2 12: shift/reduce conflict (shift 18, reduce 28) on '(' 12: shift/reduce conflict (shift 19, reduce 8) on ID d205 3 a207 3 decl : decl_specs . declarator_list ';' (10) decl : decl_specs . declarator $$3 block_statement (12) decl_specs : decl_specs . $$2 decl_spec (14) a208 1 declarator : . (28) d210 1 a210 15 '*' shift 17 '(' [trial] shift 18 ID [trial] shift 19 '(' [trial] reduce 28 '[' reduce 28 ID [trial] reduce 8 EXTERN reduce 8 REGISTER reduce 8 STATIC reduce 8 CONST reduce 8 VOLATILE reduce 8 CLCL reduce 8 ';' reduce 28 ',' reduce 28 '{' reduce 28 d212 1 a212 3 declarator_list goto 20 declarator goto 21 $$2 goto 22 d216 1 a216 1 decl_specs : decl_spec . (13) d218 1 a218 1 . reduce 13 d222 1 a222 1 decl_spec : typename . (18) d224 1 a224 1 . reduce 18 d228 1 a228 1 decl_spec : cv_qual . (17) d230 1 a230 1 . reduce 17 d237 1 a237 1 ID shift 23 d241 1 d243 3 a245 50 declarator : '*' . cv_quals $$4 $$5 declarator (33) cv_quals : . (15) . reduce 15 cv_quals goto 24 state 18 declarator : '(' . $$6 $$7 declarator ')' (32) $$6 : . (30) . reduce 30 $$6 goto 25 state 19 declarator : ID . (29) . reduce 29 state 20 decl : decl_specs declarator_list . ';' (10) declarator_list : declarator_list . ',' $$4 $$5 declarator (26) ';' shift 26 ',' shift 27 . error state 21 decl : decl_specs declarator . $$3 block_statement (12) declarator_list : declarator . (27) declarator : declarator . '[' $$4 expr ']' (34) declarator : declarator . '(' $$4 formal_arg_list ')' cv_quals (35) $$3 : . (11) '(' shift 28 '[' shift 29 ';' reduce 27 ',' reduce 27 '{' reduce 11 $$3 goto 30 state 22 decl_specs : decl_specs $$2 . decl_spec (14) d247 1 d255 8 a262 1 ID reduce 1 d264 1 a264 1 decl_spec goto 31 d268 1 d271 2 a272 2 23: shift/reduce conflict (shift 32, reduce 4) on CLCL state 23 d276 1 a276 1 CLCL [trial] shift 32 d293 34 a326 4 state 24 cv_quals : cv_quals . cv_qual (16) declarator : '*' cv_quals . $$4 $$5 declarator (33) $$4 : . (24) d328 1 a328 10 CONST shift 8 VOLATILE shift 9 '*' reduce 24 '(' reduce 24 '[' reduce 24 ID reduce 24 ';' reduce 24 ',' reduce 24 ')' reduce 24 '{' reduce 24 d330 1 a330 2 cv_qual goto 33 $$4 goto 34 d333 2 a334 2 state 25 declarator : '(' $$6 . $$7 declarator ')' (32) d339 16 a354 1 $$7 goto 35 d358 5 a362 1 decl : decl_specs declarator_list ';' . (10) d364 7 a370 1 . reduce 10 d374 3 a376 2 declarator_list : declarator_list ',' . $$4 $$5 declarator (26) $$4 : . (24) d378 10 a387 1 . reduce 24 d389 2 a390 1 $$4 goto 36 d394 2 a395 2 declarator : declarator '(' . $$4 formal_arg_list ')' cv_quals (35) $$4 : . (24) d397 1 a397 1 . reduce 24 d399 1 a399 1 $$4 goto 37 d403 1 a403 4 declarator : declarator '[' . $$4 expr ']' (34) $$4 : . (24) . reduce 24 d405 1 a405 1 $$4 goto 38 d409 2 a410 1 decl : decl_specs declarator $$3 . block_statement (12) d412 1 a412 2 '{' shift 39 . error d414 1 a414 1 block_statement goto 40 d418 2 a419 1 decl_specs : decl_specs $$2 decl_spec . (14) d421 3 a423 1 . reduce 14 d427 4 a430 1 opt_scope : opt_scope ID CLCL . (3) d432 1 a432 1 . reduce 3 d436 4 a439 1 cv_quals : cv_quals cv_qual . (16) d441 1 a441 1 . reduce 16 d445 1 a445 2 declarator : '*' cv_quals $$4 . $$5 declarator (33) $$5 : . (25) d447 1 a447 3 . reduce 25 $$5 goto 41 a449 1 35: shift/reduce conflict (shift 18, reduce 28) on '(' d451 2 a452 2 declarator : '(' $$6 $$7 . declarator ')' (32) declarator : . (28) d454 1 a454 6 '*' shift 17 '(' [trial] shift 18 ID shift 19 '(' [trial] reduce 28 '[' reduce 28 ')' reduce 28 d456 1 a456 1 declarator goto 42 d459 1 d461 2 a462 2 declarator_list : declarator_list ',' $$4 . $$5 declarator (26) $$5 : . (25) d464 6 a469 1 . reduce 25 d471 1 a471 1 $$5 goto 43 d475 10 a484 1 declarator : declarator '(' $$4 . formal_arg_list ')' cv_quals (35) d486 1 a486 1 formal_arg_list : . (36) d495 1 a495 1 ')' reduce 36 d497 2 a498 2 formal_arg goto 44 decl_specs goto 45 d503 2 a504 2 formal_arg_list goto 46 nonempty_formal_arg_list goto 47 d507 2 a508 2 state 38 declarator : declarator '[' $$4 . expr ']' (34) d510 3 a512 3 '*' shift 48 ID shift 49 CONSTANT shift 50 d515 1 a515 1 expr goto 51 d518 2 a519 2 state 39 block_statement : '{' . $$2 statement_list '}' (59) d524 1 a524 1 $$2 goto 52 d527 2 a528 2 state 40 decl : decl_specs declarator $$3 block_statement . (12) d530 1 a530 1 . reduce 12 d533 4 a536 4 41: shift/reduce conflict (shift 18, reduce 28) on '(' state 41 declarator : '*' cv_quals $$4 $$5 . declarator (33) declarator : . (28) d538 9 a546 9 '*' shift 17 '(' [trial] shift 18 ID shift 19 '(' [trial] reduce 28 '[' reduce 28 ';' reduce 28 ',' reduce 28 ')' reduce 28 '{' reduce 28 d548 1 a548 1 declarator goto 53 d551 8 a558 8 state 42 declarator : '(' $$6 $$7 declarator . ')' (32) declarator : declarator . '[' $$4 expr ']' (34) declarator : declarator . '(' $$4 formal_arg_list ')' cv_quals (35) '(' shift 28 '[' shift 29 ')' shift 54 d562 4 a565 4 43: shift/reduce conflict (shift 18, reduce 28) on '(' state 43 declarator_list : declarator_list ',' $$4 $$5 . declarator (26) declarator : . (28) d567 7 a573 7 '*' shift 17 '(' [trial] shift 18 ID shift 19 '(' [trial] reduce 28 '[' reduce 28 ';' reduce 28 ',' reduce 28 d575 1 a575 1 declarator goto 55 d578 2 a579 2 state 44 nonempty_formal_arg_list : formal_arg . (39) d581 1 a581 1 . reduce 39 d584 3 a586 5 45: shift/reduce conflict (shift 18, reduce 28) on '(' 45: shift/reduce conflict (shift 19, reduce 8) on ID state 45 decl_specs : decl_specs . $$2 decl_spec (14) formal_arg : decl_specs . declarator (40) a587 1 declarator : . (28) d589 1 a589 14 '*' shift 17 '(' [trial] shift 18 ID [trial] shift 19 '(' [trial] reduce 28 '[' reduce 28 ID [trial] reduce 8 EXTERN reduce 8 REGISTER reduce 8 STATIC reduce 8 CONST reduce 8 VOLATILE reduce 8 CLCL reduce 8 ',' reduce 28 ')' reduce 28 d591 1 a591 2 declarator goto 56 $$2 goto 22 d594 2 a595 2 state 46 declarator : declarator '(' $$4 formal_arg_list . ')' cv_quals (35) d597 1 a597 1 ')' shift 57 d601 3 a603 3 state 47 formal_arg_list : nonempty_formal_arg_list . (37) nonempty_formal_arg_list : nonempty_formal_arg_list . ',' $$6 formal_arg (38) d605 2 a606 2 ',' shift 58 ')' reduce 37 d609 2 a610 2 state 48 expr : '*' . $$2 expr (46) d615 1 a615 7 $$2 goto 59 state 49 expr : ID . (47) . reduce 47 d619 1 a619 1 expr : CONSTANT . (48) d625 3 a627 14 declarator : declarator '[' $$4 expr . ']' (34) expr : expr . '+' $$6 expr (41) expr : expr . '-' $$6 expr (42) expr : expr . '*' $$6 expr (43) expr : expr . '%' $$6 expr (44) expr : expr . '/' $$6 expr (45) '+' shift 60 '-' shift 61 '*' shift 62 '/' shift 63 '%' shift 64 ']' shift 65 . error d631 14 a644 2 block_statement : '{' $$2 . statement_list '}' (59) statement_list : . (57) a645 1 . reduce 57 d647 3 a649 1 statement_list goto 66 d651 1 d653 1 a653 11 state 53 declarator : '*' cv_quals $$4 $$5 declarator . (33) declarator : declarator . '[' $$4 expr ']' (34) declarator : declarator . '(' $$4 formal_arg_list ')' cv_quals (35) '(' shift 28 '[' shift 29 ';' reduce 33 ',' reduce 33 ')' reduce 33 '{' reduce 33 d657 10 a666 3 declarator : '(' $$6 $$7 declarator ')' . (32) . reduce 32 d670 3 a672 8 declarator_list : declarator_list ',' $$4 $$5 declarator . (26) declarator : declarator . '[' $$4 expr ']' (34) declarator : declarator . '(' $$4 formal_arg_list ')' cv_quals (35) '(' shift 28 '[' shift 29 ';' reduce 26 ',' reduce 26 d676 8 a683 8 declarator : declarator . '[' $$4 expr ']' (34) declarator : declarator . '(' $$4 formal_arg_list ')' cv_quals (35) formal_arg : decl_specs declarator . (40) '(' shift 28 '[' shift 29 ',' reduce 40 ')' reduce 40 d686 1 d688 4 a691 2 declarator : declarator '(' $$4 formal_arg_list ')' . cv_quals (35) cv_quals : . (15) d693 13 a705 1 . reduce 15 d707 5 a711 1 cv_quals goto 67 d715 2 a716 2 nonempty_formal_arg_list : nonempty_formal_arg_list ',' . $$6 formal_arg (38) $$6 : . (30) d718 1 a718 1 . reduce 30 d720 1 a720 1 $$6 goto 68 d724 2 a725 1 expr : '*' $$2 . expr (46) d727 1 a727 4 '*' shift 48 ID shift 49 CONSTANT shift 50 . error d729 1 a729 1 expr goto 69 d733 1 a733 2 expr : expr '+' . $$6 expr (41) $$6 : . (30) d735 4 a738 1 . reduce 30 d740 1 a740 1 $$6 goto 70 d744 2 a745 2 expr : expr '-' . $$6 expr (42) $$6 : . (30) d747 1 a747 1 . reduce 30 d749 1 a749 1 $$6 goto 71 d753 2 a754 2 expr : expr '*' . $$6 expr (43) $$6 : . (30) d756 1 a756 1 . reduce 30 d758 1 a758 1 $$6 goto 72 d762 2 a763 2 expr : expr '/' . $$6 expr (45) $$6 : . (30) d765 1 a765 1 . reduce 30 d767 1 a767 1 $$6 goto 73 d771 2 a772 2 expr : expr '%' . $$6 expr (44) $$6 : . (30) d774 1 a774 1 . reduce 30 d776 1 a776 1 $$6 goto 74 d780 2 a781 1 declarator : declarator '[' $$4 expr ']' . (34) d783 3 a785 1 . reduce 34 d789 8 a796 2 statement_list : statement_list . $$2 statement (58) block_statement : '{' $$2 statement_list . '}' (59) d799 1 a799 1 '}' shift 75 d812 1 a812 1 $$2 goto 76 d815 19 a833 3 state 67 cv_quals : cv_quals . cv_qual (16) declarator : declarator '(' $$4 formal_arg_list ')' cv_quals . (35) d837 6 a842 6 '(' reduce 35 '[' reduce 35 ';' reduce 35 ',' reduce 35 ')' reduce 35 '{' reduce 35 d844 1 a844 1 cv_qual goto 33 d847 2 a848 2 state 68 nonempty_formal_arg_list : nonempty_formal_arg_list ',' $$6 . formal_arg (38) d859 2 a860 2 formal_arg goto 77 decl_specs goto 45 d867 7 a873 7 state 69 expr : expr . '+' $$6 expr (41) expr : expr . '-' $$6 expr (42) expr : expr . '*' $$6 expr (43) expr : expr . '%' $$6 expr (44) expr : expr . '/' $$6 expr (45) expr : '*' $$2 expr . (46) d875 1 a875 1 . reduce 46 d878 2 a879 2 state 70 expr : expr '+' $$6 . expr (41) d881 3 a883 3 '*' shift 48 ID shift 49 CONSTANT shift 50 d886 1 a886 1 expr goto 78 d889 2 a890 2 state 71 expr : expr '-' $$6 . expr (42) d892 3 a894 3 '*' shift 48 ID shift 49 CONSTANT shift 50 d897 1 a897 1 expr goto 79 d900 2 a901 2 state 72 expr : expr '*' $$6 . expr (43) d903 3 a905 3 '*' shift 48 ID shift 49 CONSTANT shift 50 d908 1 a908 1 expr goto 80 d911 2 a912 2 state 73 expr : expr '/' $$6 . expr (45) d914 3 a916 3 '*' shift 48 ID shift 49 CONSTANT shift 50 d919 1 a919 1 expr goto 81 d922 2 a923 2 state 74 expr : expr '%' $$6 . expr (44) d925 3 a927 3 '*' shift 48 ID shift 49 CONSTANT shift 50 d930 1 a930 1 expr goto 82 d933 2 a934 2 state 75 block_statement : '{' $$2 statement_list '}' . (59) d936 1 a936 1 . reduce 59 d939 3 a941 3 76: shift/reduce conflict (shift 49, reduce 1) on ID state 76 statement_list : statement_list $$2 . statement (58) d943 2 a944 1 $$10 : . (55) a945 3 '*' shift 48 ID [trial] shift 49 CONSTANT shift 50 d951 1 a951 1 IF shift 83 d953 1 d955 3 a957 1 '{' reduce 55 d959 2 a960 3 expr goto 84 decl goto 85 statement goto 86 d966 2 a967 1 $$10 goto 87 d970 9 a978 2 state 77 nonempty_formal_arg_list : nonempty_formal_arg_list ',' $$6 formal_arg . (38) a979 1 . reduce 38 d981 2 d984 1 a984 16 state 78 expr : expr . '+' $$6 expr (41) expr : expr '+' $$6 expr . (41) expr : expr . '-' $$6 expr (42) expr : expr . '*' $$6 expr (43) expr : expr . '%' $$6 expr (44) expr : expr . '/' $$6 expr (45) '*' shift 62 '/' shift 63 '%' shift 64 '+' reduce 41 '-' reduce 41 ';' reduce 41 ')' reduce 41 ']' reduce 41 d987 11 a997 11 state 79 expr : expr . '+' $$6 expr (41) expr : expr . '-' $$6 expr (42) expr : expr '-' $$6 expr . (42) expr : expr . '*' $$6 expr (43) expr : expr . '%' $$6 expr (44) expr : expr . '/' $$6 expr (45) '*' shift 62 '/' shift 63 '%' shift 64 a1004 22 state 80 expr : expr . '+' $$6 expr (41) expr : expr . '-' $$6 expr (42) expr : expr . '*' $$6 expr (43) expr : expr '*' $$6 expr . (43) expr : expr . '%' $$6 expr (44) expr : expr . '/' $$6 expr (45) . reduce 43 state 81 expr : expr . '+' $$6 expr (41) expr : expr . '-' $$6 expr (42) expr : expr . '*' $$6 expr (43) expr : expr . '%' $$6 expr (44) expr : expr . '/' $$6 expr (45) expr : expr '/' $$6 expr . (45) . reduce 45 d1006 15 a1020 8 expr : expr . '+' $$6 expr (41) expr : expr . '-' $$6 expr (42) expr : expr . '*' $$6 expr (43) expr : expr . '%' $$6 expr (44) expr : expr '%' $$6 expr . (44) expr : expr . '/' $$6 expr (45) . reduce 44 d1024 6 a1029 2 statement : IF . '(' $$6 expr ')' THEN $$8 statement ELSE $$9 statement (53) statement : IF . '(' $$6 expr ')' THEN $$8 statement (54) d1031 1 a1031 2 '(' shift 88 . error d1035 8 a1042 14 expr : expr . '+' $$6 expr (41) expr : expr . '-' $$6 expr (42) expr : expr . '*' $$6 expr (43) expr : expr . '%' $$6 expr (44) expr : expr . '/' $$6 expr (45) statement : expr . ';' (50) '+' shift 60 '-' shift 61 '*' shift 62 '/' shift 63 '%' shift 64 ';' shift 89 . error d1046 6 a1051 1 statement : decl . (49) d1053 1 a1053 1 . reduce 49 d1057 2 a1058 1 statement_list : statement_list $$2 statement . (58) d1060 2 a1061 1 . reduce 58 d1065 1 a1065 1 statement : $$10 . block_statement (56) d1067 1 a1067 4 '{' shift 39 . error block_statement goto 90 d1071 1 a1071 3 statement : IF '(' . $$6 expr ')' THEN $$8 statement ELSE $$9 statement (53) statement : IF '(' . $$6 expr ')' THEN $$8 statement (54) $$6 : . (30) d1073 1 a1073 1 . reduce 30 a1074 1 $$6 goto 91 d1076 2 d1079 4 a1082 2 state 89 statement : expr ';' . (50) d1084 1 a1084 1 . reduce 50 d1088 4 a1091 1 statement : $$10 block_statement . (56) d1093 1 a1093 1 . reduce 56 d1097 3 a1099 2 statement : IF '(' $$6 . expr ')' THEN $$8 statement ELSE $$9 statement (53) statement : IF '(' $$6 . expr ')' THEN $$8 statement (54) d1101 1 a1101 4 '*' shift 48 ID shift 49 CONSTANT shift 50 . error d1103 1 a1103 1 expr goto 92 d1107 13 a1119 14 expr : expr . '+' $$6 expr (41) expr : expr . '-' $$6 expr (42) expr : expr . '*' $$6 expr (43) expr : expr . '%' $$6 expr (44) expr : expr . '/' $$6 expr (45) statement : IF '(' $$6 expr . ')' THEN $$8 statement ELSE $$9 statement (53) statement : IF '(' $$6 expr . ')' THEN $$8 statement (54) '+' shift 60 '-' shift 61 '*' shift 62 '/' shift 63 '%' shift 64 ')' shift 93 d1124 1 a1124 2 statement : IF '(' $$6 expr ')' . THEN $$8 statement ELSE $$9 statement (53) statement : IF '(' $$6 expr ')' . THEN $$8 statement (54) d1126 1 a1126 2 THEN shift 94 . error d1130 2 a1131 3 statement : IF '(' $$6 expr ')' THEN . $$8 statement ELSE $$9 statement (53) statement : IF '(' $$6 expr ')' THEN . $$8 statement (54) $$8 : . (51) d1133 4 a1136 1 . reduce 51 d1138 1 a1138 1 $$8 goto 95 a1140 1 95: shift/reduce conflict (shift 49, reduce 1) on ID d1142 45 a1186 2 statement : IF '(' $$6 expr ')' THEN $$8 . statement ELSE $$9 statement (53) statement : IF '(' $$6 expr ')' THEN $$8 . statement (54) d1188 2 a1189 1 $$10 : . (55) a1190 3 '*' shift 48 ID [trial] shift 49 CONSTANT shift 50 d1196 1 a1196 1 IF shift 83 d1198 1 d1200 3 a1202 1 '{' reduce 55 d1204 2 a1205 3 expr goto 84 decl goto 85 statement goto 96 d1211 2 a1212 22 $$10 goto 87 96: shift/reduce conflict (shift 97, reduce 54) on ELSE state 96 statement : IF '(' $$6 expr ')' THEN $$8 statement . ELSE $$9 statement (53) statement : IF '(' $$6 expr ')' THEN $$8 statement . (54) ELSE [trial] shift 97 '*' reduce 54 ID reduce 54 CONSTANT reduce 54 EXTERN reduce 54 REGISTER reduce 54 STATIC reduce 54 CONST reduce 54 VOLATILE reduce 54 IF reduce 54 ELSE [trial] reduce 54 CLCL reduce 54 '{' reduce 54 '}' reduce 54 d1215 33 a1247 12 state 97 statement : IF '(' $$6 expr ')' THEN $$8 statement ELSE . $$9 statement (53) $$9 : . (52) . reduce 52 $$9 goto 98 98: shift/reduce conflict (shift 49, reduce 1) on ID state 98 statement : IF '(' $$6 expr ')' THEN $$8 statement ELSE $$9 . statement (53) d1249 2 a1250 1 $$10 : . (55) a1251 3 '*' shift 48 ID [trial] shift 49 CONSTANT shift 50 d1257 1 a1257 1 IF shift 83 d1259 1 d1261 3 a1263 1 '{' reduce 55 d1265 2 a1266 3 expr goto 84 decl goto 85 statement goto 99 d1272 2 a1273 1 $$10 goto 87 d1276 2 a1277 2 state 99 statement : IF '(' $$6 expr ')' THEN $$8 statement ELSE $$9 statement . (53) d1279 1 a1279 1 . reduce 53 d1282 12 a1293 10 State 12 contains 2 shift/reduce conflicts. State 23 contains 1 shift/reduce conflict. State 35 contains 1 shift/reduce conflict. State 41 contains 1 shift/reduce conflict. State 43 contains 1 shift/reduce conflict. State 45 contains 2 shift/reduce conflicts. State 76 contains 1 shift/reduce conflict. State 95 contains 1 shift/reduce conflict. State 96 contains 1 shift/reduce conflict. State 98 contains 1 shift/reduce conflict. d1296 2 a1297 2 29 terminals, 29 nonterminals 60 grammar rules, 100 states d1359 2 @