diff options
Diffstat (limited to 'test/btyacc/btyacc_demo.output')
-rw-r--r-- | test/btyacc/btyacc_demo.output | 1358 |
1 files changed, 648 insertions, 710 deletions
diff --git a/test/btyacc/btyacc_demo.output b/test/btyacc/btyacc_demo.output index bc64d2467e752..a281c242a37cd 100644 --- a/test/btyacc/btyacc_demo.output +++ b/test/btyacc/btyacc_demo.output @@ -16,86 +16,81 @@ 9 decl_list : decl_list $$2 decl - 10 $$3 : + 10 decl : decl_specs declarator_list ';' - 11 decl : decl_specs $$2 $$3 declarator_list ';' + 11 $$3 : - 12 $$4 : + 12 decl : decl_specs declarator $$3 block_statement - 13 decl : decl_specs $$2 $$3 declarator $$4 block_statement + 13 decl_specs : decl_spec + 14 | decl_specs $$2 decl_spec - 14 decl_specs : decl_spec - 15 | decl_specs $$2 decl_spec + 15 cv_quals : + 16 | cv_quals cv_qual - 16 cv_quals : - 17 | cv_quals cv_qual + 17 decl_spec : cv_qual + 18 | typename + 19 | EXTERN + 20 | REGISTER + 21 | STATIC - 18 decl_spec : cv_qual - 19 | typename - 20 | EXTERN - 21 | REGISTER - 22 | STATIC + 22 cv_qual : CONST + 23 | VOLATILE - 23 cv_qual : CONST - 24 | VOLATILE + 24 $$4 : 25 $$5 : - 26 $$6 : + 26 declarator_list : declarator_list ',' $$4 $$5 declarator + 27 | declarator - 27 declarator_list : declarator_list ',' $$5 $$6 declarator - 28 | declarator + 28 declarator : + 29 | ID - 29 declarator : - 30 | ID + 30 $$6 : 31 $$7 : - 32 $$8 : + 32 declarator : '(' $$6 $$7 declarator ')' + 33 | '*' cv_quals $$4 $$5 declarator + 34 | declarator '[' $$4 expr ']' + 35 | declarator '(' $$4 formal_arg_list ')' cv_quals - 33 declarator : '(' $$7 $$8 declarator ')' - 34 | '*' cv_quals $$5 $$6 declarator - 35 | declarator '[' $$5 expr ']' - 36 | declarator '(' $$5 formal_arg_list ')' cv_quals + 36 formal_arg_list : + 37 | nonempty_formal_arg_list - 37 formal_arg_list : - 38 | nonempty_formal_arg_list + 38 nonempty_formal_arg_list : nonempty_formal_arg_list ',' $$6 formal_arg + 39 | formal_arg - 39 nonempty_formal_arg_list : nonempty_formal_arg_list ',' $$7 formal_arg - 40 | formal_arg + 40 formal_arg : decl_specs declarator - 41 formal_arg : decl_specs $$2 $$3 declarator + 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 - 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 + 49 statement : decl + 50 | expr ';' - 50 statement : decl + 51 $$8 : - 51 $$9 : + 52 $$9 : - 52 statement : $$9 expr ';' + 53 statement : IF '(' $$6 expr ')' THEN $$8 statement ELSE $$9 statement + 54 | IF '(' $$6 expr ')' THEN $$8 statement - 53 $$10 : + 55 $$10 : - 54 $$11 : + 56 statement : $$10 block_statement - 55 statement : IF '(' $$7 expr ')' THEN $$10 statement ELSE $$11 statement - 56 | IF '(' $$7 expr ')' THEN $$10 statement + 57 statement_list : + 58 | statement_list $$2 statement - 57 $$12 : - - 58 statement : $$12 block_statement - - 59 statement_list : - 60 | statement_list $$2 statement - - 61 block_statement : '{' $$2 statement_list '}' + 59 block_statement : '{' $$2 statement_list '}' state 0 $accept : . input $end (0) @@ -160,33 +155,33 @@ state 4 state 5 - decl_spec : EXTERN . (20) + decl_spec : EXTERN . (19) - . reduce 20 + . reduce 19 state 6 - decl_spec : REGISTER . (21) + decl_spec : REGISTER . (20) - . reduce 21 + . reduce 20 state 7 - decl_spec : STATIC . (22) + decl_spec : STATIC . (21) - . reduce 22 + . reduce 21 state 8 - cv_qual : CONST . (23) + cv_qual : CONST . (22) - . reduce 23 + . reduce 22 state 9 - cv_qual : VOLATILE . (24) + cv_qual : VOLATILE . (23) - . reduce 24 + . reduce 23 state 10 @@ -201,50 +196,114 @@ state 11 . reduce 9 +12: shift/reduce conflict (shift 18, reduce 28) on '(' +12: shift/reduce conflict (shift 19, reduce 8) on ID 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) + decl : decl_specs . declarator_list ';' (10) + decl : decl_specs . declarator $$3 block_statement (12) + decl_specs : decl_specs . $$2 decl_spec (14) $$2 : . (8) + declarator : . (28) + + '*' 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 - . reduce 8 - - $$2 goto 17 + declarator_list goto 20 + declarator goto 21 + $$2 goto 22 state 13 - decl_specs : decl_spec . (14) + decl_specs : decl_spec . (13) - . reduce 14 + . reduce 13 state 14 - decl_spec : typename . (19) + decl_spec : typename . (18) - . reduce 19 + . reduce 18 state 15 - decl_spec : cv_qual . (18) + decl_spec : cv_qual . (17) - . reduce 18 + . reduce 17 state 16 opt_scope : opt_scope . ID CLCL (3) typename : opt_scope . ID (4) - ID shift 18 + ID shift 23 . 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) + 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) opt_scope : . (1) - $$3 : . (10) EXTERN shift 5 REGISTER shift 6 @@ -252,28 +311,20 @@ state 17 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 + ID reduce 1 - decl_spec goto 19 + decl_spec goto 31 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 +23: shift/reduce conflict (shift 32, reduce 4) on CLCL +state 23 opt_scope : opt_scope ID . CLCL (3) typename : opt_scope ID . (4) - CLCL [trial] shift 21 + CLCL [trial] shift 32 '*' reduce 4 '(' reduce 4 '[' reduce 4 @@ -290,200 +341,132 @@ state 18 '{' 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) +state 24 + cv_quals : cv_quals . cv_qual (16) + declarator : '*' cv_quals . $$4 $$5 declarator (33) + $$4 : . (24) - . reduce 16 + CONST shift 8 + VOLATILE shift 9 + '*' reduce 24 + '(' reduce 24 + '[' reduce 24 + ID reduce 24 + ';' reduce 24 + ',' reduce 24 + ')' reduce 24 + '{' reduce 24 - cv_quals goto 27 + cv_qual goto 33 + $$4 goto 34 -state 23 - declarator : '(' . $$7 $$8 declarator ')' (33) +state 25 + declarator : '(' $$6 . $$7 declarator ')' (32) $$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 + $$7 goto 35 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 + decl : decl_specs declarator_list ';' . (10) - $$4 goto 33 + . reduce 10 state 27 - cv_quals : cv_quals . cv_qual (17) - declarator : '*' cv_quals . $$5 $$6 declarator (34) - $$5 : . (25) + declarator_list : declarator_list ',' . $$4 $$5 declarator (26) + $$4 : . (24) - CONST shift 8 - VOLATILE shift 9 - '*' reduce 25 - '(' reduce 25 - '[' reduce 25 - ID reduce 25 - ';' reduce 25 - ',' reduce 25 - ')' reduce 25 - '{' reduce 25 + . reduce 24 - cv_qual goto 34 - $$5 goto 35 + $$4 goto 36 state 28 - declarator : '(' $$7 . $$8 declarator ')' (33) - $$8 : . (32) + declarator : declarator '(' . $$4 formal_arg_list ')' cv_quals (35) + $$4 : . (24) - . reduce 32 + . reduce 24 - $$8 goto 36 + $$4 goto 37 state 29 - decl : decl_specs $$2 $$3 declarator_list ';' . (11) + declarator : declarator '[' . $$4 expr ']' (34) + $$4 : . (24) + + . reduce 24 - . reduce 11 + $$4 goto 38 state 30 - declarator_list : declarator_list ',' . $$5 $$6 declarator (27) - $$5 : . (25) + decl : decl_specs declarator $$3 . block_statement (12) - . reduce 25 + '{' shift 39 + . error - $$5 goto 37 + block_statement goto 40 state 31 - declarator : declarator '(' . $$5 formal_arg_list ')' cv_quals (36) - $$5 : . (25) - - . reduce 25 + decl_specs : decl_specs $$2 decl_spec . (14) - $$5 goto 38 + . reduce 14 state 32 - declarator : declarator '[' . $$5 expr ']' (35) - $$5 : . (25) - - . reduce 25 + opt_scope : opt_scope ID CLCL . (3) - $$5 goto 39 + . reduce 3 state 33 - decl : decl_specs $$2 $$3 declarator $$4 . block_statement (13) + cv_quals : cv_quals cv_qual . (16) - '{' shift 40 - . error - - block_statement goto 41 + . reduce 16 state 34 - cv_quals : cv_quals cv_qual . (17) + declarator : '*' cv_quals $$4 . $$5 declarator (33) + $$5 : . (25) - . reduce 17 + . reduce 25 + $$5 goto 41 + +35: shift/reduce conflict (shift 18, reduce 28) on '(' state 35 - declarator : '*' cv_quals $$5 . $$6 declarator (34) - $$6 : . (26) + declarator : '(' $$6 $$7 . declarator ')' (32) + declarator : . (28) - . reduce 26 + '*' shift 17 + '(' [trial] shift 18 + ID shift 19 + '(' [trial] reduce 28 + '[' reduce 28 + ')' reduce 28 - $$6 goto 42 + declarator goto 42 -36: shift/reduce conflict (shift 23, reduce 29) on '(' state 36 - declarator : '(' $$7 $$8 . declarator ')' (33) - declarator : . (29) + declarator_list : declarator_list ',' $$4 . $$5 declarator (26) + $$5 : . (25) - '*' shift 22 - '(' [trial] shift 23 - ID shift 24 - '(' [trial] reduce 29 - '[' reduce 29 - ')' reduce 29 + . reduce 25 - declarator goto 43 + $$5 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) + declarator : declarator '(' $$4 . formal_arg_list ')' cv_quals (35) opt_scope : . (1) - formal_arg_list : . (37) + formal_arg_list : . (36) EXTERN shift 5 REGISTER shift 6 @@ -492,311 +475,311 @@ state 38 VOLATILE shift 9 CLCL shift 10 ID reduce 1 - ')' reduce 37 + ')' reduce 36 - formal_arg goto 45 - decl_specs goto 46 + formal_arg goto 44 + decl_specs goto 45 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 + formal_arg_list goto 46 + nonempty_formal_arg_list goto 47 -state 39 - declarator : declarator '[' $$5 . expr ']' (35) +state 38 + declarator : declarator '[' $$4 . expr ']' (34) - '*' shift 49 - ID shift 50 - CONSTANT shift 51 + '*' shift 48 + ID shift 49 + CONSTANT shift 50 . error - expr goto 52 + expr goto 51 -state 40 - block_statement : '{' . $$2 statement_list '}' (61) +state 39 + block_statement : '{' . $$2 statement_list '}' (59) $$2 : . (8) . reduce 8 - $$2 goto 53 + $$2 goto 52 +state 40 + decl : decl_specs declarator $$3 block_statement . (12) + + . reduce 12 + + +41: shift/reduce conflict (shift 18, reduce 28) on '(' state 41 - decl : decl_specs $$2 $$3 declarator $$4 block_statement . (13) + declarator : '*' cv_quals $$4 $$5 . declarator (33) + declarator : . (28) + + '*' shift 17 + '(' [trial] shift 18 + ID shift 19 + '(' [trial] reduce 28 + '[' reduce 28 + ';' reduce 28 + ',' reduce 28 + ')' reduce 28 + '{' reduce 28 - . reduce 13 + declarator goto 53 -42: shift/reduce conflict (shift 23, reduce 29) on '(' state 42 - declarator : '*' cv_quals $$5 $$6 . declarator (34) - declarator : . (29) + declarator : '(' $$6 $$7 declarator . ')' (32) + declarator : declarator . '[' $$4 expr ']' (34) + declarator : declarator . '(' $$4 formal_arg_list ')' cv_quals (35) - '*' shift 22 - '(' [trial] shift 23 - ID shift 24 - '(' [trial] reduce 29 - '[' reduce 29 - ';' reduce 29 - ',' reduce 29 - ')' reduce 29 - '{' reduce 29 - - declarator goto 54 + '(' shift 28 + '[' shift 29 + ')' shift 54 + . error +43: shift/reduce conflict (shift 18, reduce 28) on '(' state 43 - declarator : '(' $$7 $$8 declarator . ')' (33) - declarator : declarator . '[' $$5 expr ']' (35) - declarator : declarator . '(' $$5 formal_arg_list ')' cv_quals (36) + declarator_list : declarator_list ',' $$4 $$5 . declarator (26) + declarator : . (28) + + '*' shift 17 + '(' [trial] shift 18 + ID shift 19 + '(' [trial] reduce 28 + '[' reduce 28 + ';' reduce 28 + ',' reduce 28 - '(' shift 31 - '[' shift 32 - ')' shift 55 - . error + declarator goto 55 -44: shift/reduce conflict (shift 23, reduce 29) on '(' state 44 - declarator_list : declarator_list ',' $$5 $$6 . declarator (27) - declarator : . (29) + nonempty_formal_arg_list : formal_arg . (39) - '*' shift 22 - '(' [trial] shift 23 - ID shift 24 - '(' [trial] reduce 29 - '[' reduce 29 - ';' reduce 29 - ',' reduce 29 - - declarator goto 56 + . reduce 39 +45: shift/reduce conflict (shift 18, reduce 28) on '(' +45: shift/reduce conflict (shift 19, reduce 8) on ID state 45 - nonempty_formal_arg_list : formal_arg . (40) + decl_specs : decl_specs . $$2 decl_spec (14) + formal_arg : decl_specs . declarator (40) + $$2 : . (8) + declarator : . (28) + + '*' 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 40 + declarator goto 56 + $$2 goto 22 state 46 - decl_specs : decl_specs . $$2 decl_spec (15) - formal_arg : decl_specs . $$2 $$3 declarator (41) - $$2 : . (8) - - . reduce 8 + declarator : declarator '(' $$4 formal_arg_list . ')' cv_quals (35) - $$2 goto 57 + ')' shift 57 + . error state 47 - declarator : declarator '(' $$5 formal_arg_list . ')' cv_quals (36) + formal_arg_list : nonempty_formal_arg_list . (37) + nonempty_formal_arg_list : nonempty_formal_arg_list . ',' $$6 formal_arg (38) - ')' shift 58 - . error + ',' shift 58 + ')' reduce 37 state 48 - formal_arg_list : nonempty_formal_arg_list . (38) - nonempty_formal_arg_list : nonempty_formal_arg_list . ',' $$7 formal_arg (39) + expr : '*' . $$2 expr (46) + $$2 : . (8) - ',' shift 59 - ')' reduce 38 + . reduce 8 + $$2 goto 59 -state 49 - expr : '*' . $$2 expr (47) - $$2 : . (8) - . reduce 8 +state 49 + expr : ID . (47) - $$2 goto 60 + . reduce 47 state 50 - expr : ID . (48) + expr : CONSTANT . (48) . reduce 48 state 51 - expr : CONSTANT . (49) - - . reduce 49 + 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 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 + block_statement : '{' $$2 . statement_list '}' (59) + statement_list : . (57) + . reduce 57 -state 53 - block_statement : '{' $$2 . statement_list '}' (61) - statement_list : . (59) + statement_list goto 66 - . reduce 59 - statement_list goto 67 +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 state 54 - declarator : '*' cv_quals $$5 $$6 declarator . (34) - declarator : declarator . '[' $$5 expr ']' (35) - declarator : declarator . '(' $$5 formal_arg_list ')' cv_quals (36) + declarator : '(' $$6 $$7 declarator ')' . (32) - '(' shift 31 - '[' shift 32 - ';' reduce 34 - ',' reduce 34 - ')' reduce 34 - '{' reduce 34 + . reduce 32 state 55 - declarator : '(' $$7 $$8 declarator ')' . (33) + declarator_list : declarator_list ',' $$4 $$5 declarator . (26) + declarator : declarator . '[' $$4 expr ']' (34) + declarator : declarator . '(' $$4 formal_arg_list ')' cv_quals (35) - . reduce 33 + '(' shift 28 + '[' shift 29 + ';' reduce 26 + ',' reduce 26 state 56 - declarator_list : declarator_list ',' $$5 $$6 declarator . (27) - declarator : declarator . '[' $$5 expr ']' (35) - declarator : declarator . '(' $$5 formal_arg_list ')' cv_quals (36) + declarator : declarator . '[' $$4 expr ']' (34) + declarator : declarator . '(' $$4 formal_arg_list ')' cv_quals (35) + formal_arg : decl_specs declarator . (40) - '(' shift 31 - '[' shift 32 - ';' reduce 27 - ',' reduce 27 + '(' shift 28 + '[' shift 29 + ',' reduce 40 + ')' reduce 40 -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) + declarator : declarator '(' $$4 formal_arg_list ')' . cv_quals (35) + cv_quals : . (15) - 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 15 - decl_spec goto 19 - typename goto 14 - cv_qual goto 15 - opt_scope goto 16 - $$3 goto 68 + cv_quals goto 67 state 58 - declarator : declarator '(' $$5 formal_arg_list ')' . cv_quals (36) - cv_quals : . (16) + nonempty_formal_arg_list : nonempty_formal_arg_list ',' . $$6 formal_arg (38) + $$6 : . (30) - . reduce 16 + . reduce 30 - cv_quals goto 69 + $$6 goto 68 state 59 - nonempty_formal_arg_list : nonempty_formal_arg_list ',' . $$7 formal_arg (39) - $$7 : . (31) + expr : '*' $$2 . expr (46) - . reduce 31 + '*' shift 48 + ID shift 49 + CONSTANT shift 50 + . error - $$7 goto 70 + expr goto 69 state 60 - expr : '*' $$2 . expr (47) + expr : expr '+' . $$6 expr (41) + $$6 : . (30) - '*' shift 49 - ID shift 50 - CONSTANT shift 51 - . error + . reduce 30 - expr goto 71 + $$6 goto 70 state 61 - expr : expr '+' . $$7 expr (42) - $$7 : . (31) + expr : expr '-' . $$6 expr (42) + $$6 : . (30) - . reduce 31 + . reduce 30 - $$7 goto 72 + $$6 goto 71 state 62 - expr : expr '-' . $$7 expr (43) - $$7 : . (31) + expr : expr '*' . $$6 expr (43) + $$6 : . (30) - . reduce 31 + . reduce 30 - $$7 goto 73 + $$6 goto 72 state 63 - expr : expr '*' . $$7 expr (44) - $$7 : . (31) + expr : expr '/' . $$6 expr (45) + $$6 : . (30) - . reduce 31 + . reduce 30 - $$7 goto 74 + $$6 goto 73 state 64 - expr : expr '/' . $$7 expr (46) - $$7 : . (31) + expr : expr '%' . $$6 expr (44) + $$6 : . (30) - . reduce 31 + . reduce 30 - $$7 goto 75 + $$6 goto 74 state 65 - expr : expr '%' . $$7 expr (45) - $$7 : . (31) + declarator : declarator '[' $$4 expr ']' . (34) - . reduce 31 - - $$7 goto 76 + . reduce 34 state 66 - declarator : declarator '[' $$5 expr ']' . (35) - - . reduce 35 - - -state 67 - statement_list : statement_list . $$2 statement (60) - block_statement : '{' $$2 statement_list . '}' (61) + statement_list : statement_list . $$2 statement (58) + block_statement : '{' $$2 statement_list . '}' (59) $$2 : . (8) - '}' shift 77 + '}' shift 75 '*' reduce 8 ID reduce 8 CONSTANT reduce 8 @@ -809,43 +792,27 @@ state 67 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 + $$2 goto 76 - declarator goto 79 - -state 69 - cv_quals : cv_quals . cv_qual (17) - declarator : declarator '(' $$5 formal_arg_list ')' cv_quals . (36) +state 67 + cv_quals : cv_quals . cv_qual (16) + declarator : declarator '(' $$4 formal_arg_list ')' cv_quals . (35) CONST shift 8 VOLATILE shift 9 - '(' reduce 36 - '[' reduce 36 - ';' reduce 36 - ',' reduce 36 - ')' reduce 36 - '{' reduce 36 + '(' reduce 35 + '[' reduce 35 + ';' reduce 35 + ',' reduce 35 + ')' reduce 35 + '{' reduce 35 - cv_qual goto 34 + cv_qual goto 33 -state 70 - nonempty_formal_arg_list : nonempty_formal_arg_list ',' $$7 . formal_arg (39) +state 68 + nonempty_formal_arg_list : nonempty_formal_arg_list ',' $$6 . formal_arg (38) opt_scope : . (1) EXTERN shift 5 @@ -856,145 +823,151 @@ state 70 CLCL shift 10 ID reduce 1 - formal_arg goto 80 - decl_specs goto 46 + formal_arg goto 77 + decl_specs goto 45 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) +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) - . reduce 47 + . reduce 46 -state 72 - expr : expr '+' $$7 . expr (42) +state 70 + expr : expr '+' $$6 . expr (41) - '*' shift 49 - ID shift 50 - CONSTANT shift 51 + '*' shift 48 + ID shift 49 + CONSTANT shift 50 . error - expr goto 81 + expr goto 78 -state 73 - expr : expr '-' $$7 . expr (43) +state 71 + expr : expr '-' $$6 . expr (42) - '*' shift 49 - ID shift 50 - CONSTANT shift 51 + '*' shift 48 + ID shift 49 + CONSTANT shift 50 . error - expr goto 82 + expr goto 79 -state 74 - expr : expr '*' $$7 . expr (44) +state 72 + expr : expr '*' $$6 . expr (43) - '*' shift 49 - ID shift 50 - CONSTANT shift 51 + '*' shift 48 + ID shift 49 + CONSTANT shift 50 . error - expr goto 83 + expr goto 80 -state 75 - expr : expr '/' $$7 . expr (46) +state 73 + expr : expr '/' $$6 . expr (45) - '*' shift 49 - ID shift 50 - CONSTANT shift 51 + '*' shift 48 + ID shift 49 + CONSTANT shift 50 . error - expr goto 84 + expr goto 81 -state 76 - expr : expr '%' $$7 . expr (45) +state 74 + expr : expr '%' $$6 . expr (44) - '*' shift 49 - ID shift 50 - CONSTANT shift 51 + '*' shift 48 + ID shift 49 + CONSTANT shift 50 . error - expr goto 85 + expr goto 82 -state 77 - block_statement : '{' $$2 statement_list '}' . (61) +state 75 + block_statement : '{' $$2 statement_list '}' . (59) - . reduce 61 + . reduce 59 -78: reduce/reduce conflict (reduce 1, reduce 51) on ID -state 78 - statement_list : statement_list $$2 . statement (60) +76: shift/reduce conflict (shift 49, reduce 1) on ID +state 76 + statement_list : statement_list $$2 . statement (58) opt_scope : . (1) - $$9 : . (51) - $$12 : . (57) + $$10 : . (55) + '*' shift 48 + ID [trial] shift 49 + CONSTANT shift 50 EXTERN shift 5 REGISTER shift 6 STATIC shift 7 CONST shift 8 VOLATILE shift 9 - IF shift 86 + IF shift 83 CLCL shift 10 - '*' reduce 51 ID [trial] reduce 1 - ID [trial] reduce 51 - CONSTANT reduce 51 - '{' reduce 57 + '{' reduce 55 - decl goto 87 - statement goto 88 + expr goto 84 + decl goto 85 + statement goto 86 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 + $$10 goto 87 -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 77 + nonempty_formal_arg_list : nonempty_formal_arg_list ',' $$6 formal_arg . (38) + . reduce 38 -state 80 - nonempty_formal_arg_list : nonempty_formal_arg_list ',' $$7 formal_arg . (39) - . reduce 39 +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 -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 +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 '+' reduce 42 '-' reduce 42 ';' reduce 42 @@ -1002,299 +975,266 @@ state 81 ']' reduce 42 +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 + + 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 + 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 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) + statement : IF . '(' $$6 expr ')' THEN $$8 statement ELSE $$9 statement (53) + statement : IF . '(' $$6 expr ')' THEN $$8 statement (54) - . reduce 44 + '(' shift 88 + . error 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 + 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 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) + statement : decl . (49) - . reduce 45 + . reduce 49 state 86 - statement : IF . '(' $$7 expr ')' THEN $$10 statement ELSE $$11 statement (55) - statement : IF . '(' $$7 expr ')' THEN $$10 statement (56) + statement_list : statement_list $$2 statement . (58) - '(' shift 91 - . error + . reduce 58 state 87 - statement : decl . (50) + statement : $$10 . block_statement (56) - . reduce 50 + '{' shift 39 + . error + + block_statement goto 90 state 88 - statement_list : statement_list $$2 statement . (60) + statement : IF '(' . $$6 expr ')' THEN $$8 statement ELSE $$9 statement (53) + statement : IF '(' . $$6 expr ')' THEN $$8 statement (54) + $$6 : . (30) - . reduce 60 + . reduce 30 + $$6 goto 91 -state 89 - statement : $$9 . expr ';' (52) - '*' shift 49 - ID shift 50 - CONSTANT shift 51 - . error +state 89 + statement : expr ';' . (50) - expr goto 92 + . reduce 50 state 90 - statement : $$12 . block_statement (58) + statement : $$10 block_statement . (56) - '{' shift 40 - . error - - block_statement goto 93 + . reduce 56 state 91 - statement : IF '(' . $$7 expr ')' THEN $$10 statement ELSE $$11 statement (55) - statement : IF '(' . $$7 expr ')' THEN $$10 statement (56) - $$7 : . (31) + statement : IF '(' $$6 . expr ')' THEN $$8 statement ELSE $$9 statement (53) + statement : IF '(' $$6 . expr ')' THEN $$8 statement (54) - . reduce 31 + '*' shift 48 + ID shift 49 + CONSTANT shift 50 + . error - $$7 goto 94 + expr goto 92 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 + 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 . error state 93 - statement : $$12 block_statement . (58) + statement : IF '(' $$6 expr ')' . THEN $$8 statement ELSE $$9 statement (53) + statement : IF '(' $$6 expr ')' . THEN $$8 statement (54) - . reduce 58 + THEN shift 94 + . error state 94 - statement : IF '(' $$7 . expr ')' THEN $$10 statement ELSE $$11 statement (55) - statement : IF '(' $$7 . expr ')' THEN $$10 statement (56) + statement : IF '(' $$6 expr ')' THEN . $$8 statement ELSE $$9 statement (53) + statement : IF '(' $$6 expr ')' THEN . $$8 statement (54) + $$8 : . (51) - '*' shift 49 - ID shift 50 - CONSTANT shift 51 - . error + . reduce 51 - expr goto 96 + $$8 goto 95 +95: shift/reduce conflict (shift 49, reduce 1) on ID 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) + statement : IF '(' $$6 expr ')' THEN $$8 . statement ELSE $$9 statement (53) + statement : IF '(' $$6 expr ')' THEN $$8 . statement (54) opt_scope : . (1) - $$9 : . (51) - $$12 : . (57) + $$10 : . (55) + '*' shift 48 + ID [trial] shift 49 + CONSTANT shift 50 EXTERN shift 5 REGISTER shift 6 STATIC shift 7 CONST shift 8 VOLATILE shift 9 - IF shift 86 + IF shift 83 CLCL shift 10 - '*' reduce 51 ID [trial] reduce 1 - ID [trial] reduce 51 - CONSTANT reduce 51 - '{' reduce 57 + '{' reduce 55 - decl goto 87 - statement goto 100 + expr goto 84 + decl goto 85 + statement goto 96 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 - + $$10 goto 87 -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 +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 -state 101 - statement : IF '(' $$7 expr ')' THEN $$10 statement ELSE . $$11 statement (55) - $$11 : . (54) +state 97 + statement : IF '(' $$6 expr ')' THEN $$8 statement ELSE . $$9 statement (53) + $$9 : . (52) - . reduce 54 + . reduce 52 - $$11 goto 102 + $$9 goto 98 -102: reduce/reduce conflict (reduce 1, reduce 51) on ID -state 102 - statement : IF '(' $$7 expr ')' THEN $$10 statement ELSE $$11 . statement (55) +98: shift/reduce conflict (shift 49, reduce 1) on ID +state 98 + statement : IF '(' $$6 expr ')' THEN $$8 statement ELSE $$9 . statement (53) opt_scope : . (1) - $$9 : . (51) - $$12 : . (57) + $$10 : . (55) + '*' shift 48 + ID [trial] shift 49 + CONSTANT shift 50 EXTERN shift 5 REGISTER shift 6 STATIC shift 7 CONST shift 8 VOLATILE shift 9 - IF shift 86 + IF shift 83 CLCL shift 10 - '*' reduce 51 ID [trial] reduce 1 - ID [trial] reduce 51 - CONSTANT reduce 51 - '{' reduce 57 + '{' reduce 55 - decl goto 87 - statement goto 103 + expr goto 84 + decl goto 85 + statement goto 99 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 + $$10 goto 87 -state 103 - statement : IF '(' $$7 expr ')' THEN $$10 statement ELSE $$11 statement . (55) +state 99 + statement : IF '(' $$6 expr ')' THEN $$8 statement ELSE $$9 statement . (53) - . reduce 55 + . reduce 53 -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. +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. -29 terminals, 31 nonterminals -62 grammar rules, 104 states +29 terminals, 29 nonterminals +60 grammar rules, 100 states grammar parser grammar symbol# value# symbol @@ -1356,5 +1296,3 @@ symbol# value# symbol 55 296 $$8 56 297 $$9 57 298 $$10 - 58 299 $$11 - 59 300 $$12 |