Mercurial > hg > Members > nobuyasu > SampleSource
diff WindowsOnly/WinScript2/script-parser.output @ 0:db40c85cad7a default tip
upload sample source
author | nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 09 May 2011 03:11:59 +0900 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/WindowsOnly/WinScript2/script-parser.output Mon May 09 03:11:59 2011 +0900 @@ -0,0 +1,4539 @@ +State 166 conflicts: 1 shift/reduce + + +Grammar + + 0 $accept: unit "end of file" + + 1 unit: define_or_state + 2 | unit define_or_state + + 3 define_or_state: error ';' + 4 | function + 5 | declaration + + 6 declaration: type value_list ';' + 7 | type "identifier" '(' ')' ';' + 8 | type "identifier" '(' arglist ')' ';' + 9 | "void" "identifier" '(' ')' ';' + 10 | "void" "identifier" '(' arglist ')' ';' + + 11 value_list: value + 12 | value_list ',' value + + 13 arglist: arg + 14 | arglist ',' arg + + 15 arg: type + 16 | type '&' + 17 | type "identifier" + 18 | type '&' "identifier" + 19 | type "identifier" '[' ']' + 20 | type '&' "identifier" '[' ']' + + 21 function: type "identifier" '(' ')' block + 22 | type "identifier" '(' arglist ')' block + 23 | "void" "identifier" '(' ')' block + 24 | "void" "identifier" '(' arglist ')' block + + 25 type: "int" + 26 | "string" + + 27 block: '{' decl_list state_list '}' + + 28 decl_list: /* empty */ + 29 | decls + + 30 state_list: /* empty */ + 31 | states + + 32 decls: type value_list ';' + 33 | decls type value_list ';' + + 34 states: statement + 35 | states statement + + 36 statement: ';' + 37 | assign ';' + 38 | "identifier" '(' args ')' ';' + 39 | "identifier" '(' ')' ';' + 40 | "case" expr ':' + 41 | "default" ':' + 42 | "break" ';' + 43 | "return" ';' + 44 | "return" expr ';' + 45 | "if" '(' expr ')' statement + 46 | "if" '(' expr ')' statement "else" statement + 47 | "for" '(' assign ';' expr ';' assign ')' statement + 48 | "while" '(' expr ')' statement + 49 | "switch" '(' expr ')' '{' state_list '}' + 50 | block + + 51 assign: value '=' expr + 52 | value "+=" expr + 53 | value "-=" expr + 54 | value "*=" expr + 55 | value "/=" expr + 56 | value "%=" expr + + 57 expr: expr "&&" expr + 58 | expr "||" expr + 59 | expr "==" expr + 60 | expr "!=" expr + 61 | expr '>' expr + 62 | expr ">=" expr + 63 | expr '<' expr + 64 | expr "<=" expr + 65 | expr '&' expr + 66 | expr '|' expr + 67 | expr "<<" expr + 68 | expr ">>" expr + 69 | expr '-' expr + 70 | expr '+' expr + 71 | expr '*' expr + 72 | expr '/' expr + 73 | expr '%' expr + 74 | '-' expr + 75 | '(' expr ')' + 76 | value + 77 | "ival" + 78 | "sval" + 79 | "identifier" '(' args ')' + 80 | "identifier" '(' ')' + + 81 value: "identifier" + 82 | "identifier" '[' expr ']' + + 83 args: expr + 84 | args ',' expr + + +Terminals, with rules where they appear + +"end of file" (0) 0 +'%' (37) 73 +'&' (38) 16 18 20 65 +'(' (40) 7 8 9 10 21 22 23 24 38 39 45 46 47 48 49 75 79 80 +')' (41) 7 8 9 10 21 22 23 24 38 39 45 46 47 48 49 75 79 80 +'*' (42) 71 +'+' (43) 70 +',' (44) 12 14 84 +'-' (45) 69 74 +'/' (47) 72 +':' (58) 40 41 +';' (59) 3 6 7 8 9 10 32 33 36 37 38 39 42 43 44 47 +'<' (60) 63 +'=' (61) 51 +'>' (62) 61 +'[' (91) 19 20 82 +']' (93) 19 20 82 +'{' (123) 27 49 +'|' (124) 66 +'}' (125) 27 49 +error (256) 3 +"ival" (258) 77 +"identifier" (259) 7 8 9 10 17 18 19 20 21 22 23 24 38 39 79 80 81 + 82 +"sval" (260) 78 +"||" (261) 58 +"&&" (262) 57 +"==" (263) 59 +"!=" (264) 60 +">=" (265) 62 +"<=" (266) 64 +"<<" (267) 67 +">>" (268) 68 +"+=" (269) 52 +"-=" (270) 53 +"*=" (271) 54 +"/=" (272) 55 +"%=" (273) 56 +"if" (274) 45 46 +"else" (275) 46 +"while" (276) 48 +"for" (277) 47 +"switch" (278) 49 +"case" (279) 40 +"default" (280) 41 +"break" (281) 42 +"return" (282) 43 44 +"int" (283) 25 +"string" (284) 26 +"void" (285) 9 10 23 24 +NEG (286) + + +Nonterminals, with rules where they appear + +$accept (51) + on left: 0 +unit (52) + on left: 1 2, on right: 0 2 +define_or_state (53) + on left: 3 4 5, on right: 1 2 +declaration (54) + on left: 6 7 8 9 10, on right: 5 +value_list (55) + on left: 11 12, on right: 6 12 32 33 +arglist (56) + on left: 13 14, on right: 8 10 14 22 24 +arg (57) + on left: 15 16 17 18 19 20, on right: 13 14 +function (58) + on left: 21 22 23 24, on right: 4 +type (59) + on left: 25 26, on right: 6 7 8 15 16 17 18 19 20 21 22 32 33 +block (60) + on left: 27, on right: 21 22 23 24 50 +decl_list (61) + on left: 28 29, on right: 27 +state_list (62) + on left: 30 31, on right: 27 49 +decls (63) + on left: 32 33, on right: 29 33 +states (64) + on left: 34 35, on right: 31 35 +statement (65) + on left: 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50, + on right: 34 35 45 46 47 48 +assign (66) + on left: 51 52 53 54 55 56, on right: 37 47 +expr (67) + on left: 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 + 75 76 77 78 79 80, on right: 40 44 45 46 47 48 49 51 52 53 54 55 + 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 82 + 83 84 +value (68) + on left: 81 82, on right: 11 12 51 52 53 54 55 56 76 +args (69) + on left: 83 84, on right: 38 79 84 + + +state 0 + + 0 $accept: . unit "end of file" + 1 unit: . define_or_state + 2 | . unit define_or_state + 3 define_or_state: . error ';' + 4 | . function + 5 | . declaration + 6 declaration: . type value_list ';' + 7 | . type "identifier" '(' ')' ';' + 8 | . type "identifier" '(' arglist ')' ';' + 9 | . "void" "identifier" '(' ')' ';' + 10 | . "void" "identifier" '(' arglist ')' ';' + 21 function: . type "identifier" '(' ')' block + 22 | . type "identifier" '(' arglist ')' block + 23 | . "void" "identifier" '(' ')' block + 24 | . "void" "identifier" '(' arglist ')' block + 25 type: . "int" + 26 | . "string" + + error shift, and go to state 1 + "int" shift, and go to state 2 + "string" shift, and go to state 3 + "void" shift, and go to state 4 + + unit go to state 5 + define_or_state go to state 6 + declaration go to state 7 + function go to state 8 + type go to state 9 + + +state 1 + + 3 define_or_state: error . ';' + + ';' shift, and go to state 10 + + +state 2 + + 25 type: "int" . + + $default reduce using rule 25 (type) + + +state 3 + + 26 type: "string" . + + $default reduce using rule 26 (type) + + +state 4 + + 9 declaration: "void" . "identifier" '(' ')' ';' + 10 | "void" . "identifier" '(' arglist ')' ';' + 23 function: "void" . "identifier" '(' ')' block + 24 | "void" . "identifier" '(' arglist ')' block + + "identifier" shift, and go to state 11 + + +state 5 + + 0 $accept: unit . "end of file" + 2 unit: unit . define_or_state + 3 define_or_state: . error ';' + 4 | . function + 5 | . declaration + 6 declaration: . type value_list ';' + 7 | . type "identifier" '(' ')' ';' + 8 | . type "identifier" '(' arglist ')' ';' + 9 | . "void" "identifier" '(' ')' ';' + 10 | . "void" "identifier" '(' arglist ')' ';' + 21 function: . type "identifier" '(' ')' block + 22 | . type "identifier" '(' arglist ')' block + 23 | . "void" "identifier" '(' ')' block + 24 | . "void" "identifier" '(' arglist ')' block + 25 type: . "int" + 26 | . "string" + + "end of file" shift, and go to state 12 + error shift, and go to state 1 + "int" shift, and go to state 2 + "string" shift, and go to state 3 + "void" shift, and go to state 4 + + define_or_state go to state 13 + declaration go to state 7 + function go to state 8 + type go to state 9 + + +state 6 + + 1 unit: define_or_state . + + $default reduce using rule 1 (unit) + + +state 7 + + 5 define_or_state: declaration . + + $default reduce using rule 5 (define_or_state) + + +state 8 + + 4 define_or_state: function . + + $default reduce using rule 4 (define_or_state) + + +state 9 + + 6 declaration: type . value_list ';' + 7 | type . "identifier" '(' ')' ';' + 8 | type . "identifier" '(' arglist ')' ';' + 11 value_list: . value + 12 | . value_list ',' value + 21 function: type . "identifier" '(' ')' block + 22 | type . "identifier" '(' arglist ')' block + 81 value: . "identifier" + 82 | . "identifier" '[' expr ']' + + "identifier" shift, and go to state 14 + + value_list go to state 15 + value go to state 16 + + +state 10 + + 3 define_or_state: error ';' . + + $default reduce using rule 3 (define_or_state) + + +state 11 + + 9 declaration: "void" "identifier" . '(' ')' ';' + 10 | "void" "identifier" . '(' arglist ')' ';' + 23 function: "void" "identifier" . '(' ')' block + 24 | "void" "identifier" . '(' arglist ')' block + + '(' shift, and go to state 17 + + +state 12 + + 0 $accept: unit "end of file" . + + $default accept + + +state 13 + + 2 unit: unit define_or_state . + + $default reduce using rule 2 (unit) + + +state 14 + + 7 declaration: type "identifier" . '(' ')' ';' + 8 | type "identifier" . '(' arglist ')' ';' + 21 function: type "identifier" . '(' ')' block + 22 | type "identifier" . '(' arglist ')' block + 81 value: "identifier" . [';', ','] + 82 | "identifier" . '[' expr ']' + + '(' shift, and go to state 18 + '[' shift, and go to state 19 + + $default reduce using rule 81 (value) + + +state 15 + + 6 declaration: type value_list . ';' + 12 value_list: value_list . ',' value + + ';' shift, and go to state 20 + ',' shift, and go to state 21 + + +state 16 + + 11 value_list: value . + + $default reduce using rule 11 (value_list) + + +state 17 + + 9 declaration: "void" "identifier" '(' . ')' ';' + 10 | "void" "identifier" '(' . arglist ')' ';' + 13 arglist: . arg + 14 | . arglist ',' arg + 15 arg: . type + 16 | . type '&' + 17 | . type "identifier" + 18 | . type '&' "identifier" + 19 | . type "identifier" '[' ']' + 20 | . type '&' "identifier" '[' ']' + 23 function: "void" "identifier" '(' . ')' block + 24 | "void" "identifier" '(' . arglist ')' block + 25 type: . "int" + 26 | . "string" + + "int" shift, and go to state 2 + "string" shift, and go to state 3 + ')' shift, and go to state 22 + + arglist go to state 23 + arg go to state 24 + type go to state 25 + + +state 18 + + 7 declaration: type "identifier" '(' . ')' ';' + 8 | type "identifier" '(' . arglist ')' ';' + 13 arglist: . arg + 14 | . arglist ',' arg + 15 arg: . type + 16 | . type '&' + 17 | . type "identifier" + 18 | . type '&' "identifier" + 19 | . type "identifier" '[' ']' + 20 | . type '&' "identifier" '[' ']' + 21 function: type "identifier" '(' . ')' block + 22 | type "identifier" '(' . arglist ')' block + 25 type: . "int" + 26 | . "string" + + "int" shift, and go to state 2 + "string" shift, and go to state 3 + ')' shift, and go to state 26 + + arglist go to state 27 + arg go to state 24 + type go to state 25 + + +state 19 + + 57 expr: . expr "&&" expr + 58 | . expr "||" expr + 59 | . expr "==" expr + 60 | . expr "!=" expr + 61 | . expr '>' expr + 62 | . expr ">=" expr + 63 | . expr '<' expr + 64 | . expr "<=" expr + 65 | . expr '&' expr + 66 | . expr '|' expr + 67 | . expr "<<" expr + 68 | . expr ">>" expr + 69 | . expr '-' expr + 70 | . expr '+' expr + 71 | . expr '*' expr + 72 | . expr '/' expr + 73 | . expr '%' expr + 74 | . '-' expr + 75 | . '(' expr ')' + 76 | . value + 77 | . "ival" + 78 | . "sval" + 79 | . "identifier" '(' args ')' + 80 | . "identifier" '(' ')' + 81 value: . "identifier" + 82 | . "identifier" '[' expr ']' + 82 | "identifier" '[' . expr ']' + + "ival" shift, and go to state 28 + "identifier" shift, and go to state 29 + "sval" shift, and go to state 30 + '-' shift, and go to state 31 + '(' shift, and go to state 32 + + expr go to state 33 + value go to state 34 + + +state 20 + + 6 declaration: type value_list ';' . + + $default reduce using rule 6 (declaration) + + +state 21 + + 12 value_list: value_list ',' . value + 81 value: . "identifier" + 82 | . "identifier" '[' expr ']' + + "identifier" shift, and go to state 35 + + value go to state 36 + + +state 22 + + 9 declaration: "void" "identifier" '(' ')' . ';' + 23 function: "void" "identifier" '(' ')' . block + 27 block: . '{' decl_list state_list '}' + + ';' shift, and go to state 37 + '{' shift, and go to state 38 + + block go to state 39 + + +state 23 + + 10 declaration: "void" "identifier" '(' arglist . ')' ';' + 14 arglist: arglist . ',' arg + 24 function: "void" "identifier" '(' arglist . ')' block + + ')' shift, and go to state 40 + ',' shift, and go to state 41 + + +state 24 + + 13 arglist: arg . + + $default reduce using rule 13 (arglist) + + +state 25 + + 15 arg: type . [')', ','] + 16 | type . '&' + 17 | type . "identifier" + 18 | type . '&' "identifier" + 19 | type . "identifier" '[' ']' + 20 | type . '&' "identifier" '[' ']' + + "identifier" shift, and go to state 42 + '&' shift, and go to state 43 + + $default reduce using rule 15 (arg) + + +state 26 + + 7 declaration: type "identifier" '(' ')' . ';' + 21 function: type "identifier" '(' ')' . block + 27 block: . '{' decl_list state_list '}' + + ';' shift, and go to state 44 + '{' shift, and go to state 38 + + block go to state 45 + + +state 27 + + 8 declaration: type "identifier" '(' arglist . ')' ';' + 14 arglist: arglist . ',' arg + 22 function: type "identifier" '(' arglist . ')' block + + ')' shift, and go to state 46 + ',' shift, and go to state 41 + + +state 28 + + 77 expr: "ival" . + + $default reduce using rule 77 (expr) + + +state 29 + + 79 expr: "identifier" . '(' args ')' + 80 | "identifier" . '(' ')' + 81 value: "identifier" . ["||", "&&", "==", "!=", ">=", "<=", "<<", ">>", '>', '<', '&', '|', '+', '-', '*', '/', '%', ';', ')', ',', ']', ':'] + 82 | "identifier" . '[' expr ']' + + '(' shift, and go to state 47 + '[' shift, and go to state 19 + + $default reduce using rule 81 (value) + + +state 30 + + 78 expr: "sval" . + + $default reduce using rule 78 (expr) + + +state 31 + + 57 expr: . expr "&&" expr + 58 | . expr "||" expr + 59 | . expr "==" expr + 60 | . expr "!=" expr + 61 | . expr '>' expr + 62 | . expr ">=" expr + 63 | . expr '<' expr + 64 | . expr "<=" expr + 65 | . expr '&' expr + 66 | . expr '|' expr + 67 | . expr "<<" expr + 68 | . expr ">>" expr + 69 | . expr '-' expr + 70 | . expr '+' expr + 71 | . expr '*' expr + 72 | . expr '/' expr + 73 | . expr '%' expr + 74 | . '-' expr + 74 | '-' . expr + 75 | . '(' expr ')' + 76 | . value + 77 | . "ival" + 78 | . "sval" + 79 | . "identifier" '(' args ')' + 80 | . "identifier" '(' ')' + 81 value: . "identifier" + 82 | . "identifier" '[' expr ']' + + "ival" shift, and go to state 28 + "identifier" shift, and go to state 29 + "sval" shift, and go to state 30 + '-' shift, and go to state 31 + '(' shift, and go to state 32 + + expr go to state 48 + value go to state 34 + + +state 32 + + 57 expr: . expr "&&" expr + 58 | . expr "||" expr + 59 | . expr "==" expr + 60 | . expr "!=" expr + 61 | . expr '>' expr + 62 | . expr ">=" expr + 63 | . expr '<' expr + 64 | . expr "<=" expr + 65 | . expr '&' expr + 66 | . expr '|' expr + 67 | . expr "<<" expr + 68 | . expr ">>" expr + 69 | . expr '-' expr + 70 | . expr '+' expr + 71 | . expr '*' expr + 72 | . expr '/' expr + 73 | . expr '%' expr + 74 | . '-' expr + 75 | . '(' expr ')' + 75 | '(' . expr ')' + 76 | . value + 77 | . "ival" + 78 | . "sval" + 79 | . "identifier" '(' args ')' + 80 | . "identifier" '(' ')' + 81 value: . "identifier" + 82 | . "identifier" '[' expr ']' + + "ival" shift, and go to state 28 + "identifier" shift, and go to state 29 + "sval" shift, and go to state 30 + '-' shift, and go to state 31 + '(' shift, and go to state 32 + + expr go to state 49 + value go to state 34 + + +state 33 + + 57 expr: expr . "&&" expr + 58 | expr . "||" expr + 59 | expr . "==" expr + 60 | expr . "!=" expr + 61 | expr . '>' expr + 62 | expr . ">=" expr + 63 | expr . '<' expr + 64 | expr . "<=" expr + 65 | expr . '&' expr + 66 | expr . '|' expr + 67 | expr . "<<" expr + 68 | expr . ">>" expr + 69 | expr . '-' expr + 70 | expr . '+' expr + 71 | expr . '*' expr + 72 | expr . '/' expr + 73 | expr . '%' expr + 82 value: "identifier" '[' expr . ']' + + "||" shift, and go to state 50 + "&&" shift, and go to state 51 + "==" shift, and go to state 52 + "!=" shift, and go to state 53 + ">=" shift, and go to state 54 + "<=" shift, and go to state 55 + "<<" shift, and go to state 56 + ">>" shift, and go to state 57 + '>' shift, and go to state 58 + '<' shift, and go to state 59 + '&' shift, and go to state 60 + '|' shift, and go to state 61 + '+' shift, and go to state 62 + '-' shift, and go to state 63 + '*' shift, and go to state 64 + '/' shift, and go to state 65 + '%' shift, and go to state 66 + ']' shift, and go to state 67 + + +state 34 + + 76 expr: value . + + $default reduce using rule 76 (expr) + + +state 35 + + 81 value: "identifier" . ["+=", "-=", "*=", "/=", "%=", ';', ',', '='] + 82 | "identifier" . '[' expr ']' + + '[' shift, and go to state 19 + + $default reduce using rule 81 (value) + + +state 36 + + 12 value_list: value_list ',' value . + + $default reduce using rule 12 (value_list) + + +state 37 + + 9 declaration: "void" "identifier" '(' ')' ';' . + + $default reduce using rule 9 (declaration) + + +state 38 + + 25 type: . "int" + 26 | . "string" + 27 block: '{' . decl_list state_list '}' + 28 decl_list: . ["identifier", "if", "while", "for", "switch", "case", "default", "break", "return", ';', '{', '}'] + 29 | . decls + 32 decls: . type value_list ';' + 33 | . decls type value_list ';' + + "int" shift, and go to state 2 + "string" shift, and go to state 3 + + $default reduce using rule 28 (decl_list) + + type go to state 68 + decl_list go to state 69 + decls go to state 70 + + +state 39 + + 23 function: "void" "identifier" '(' ')' block . + + $default reduce using rule 23 (function) + + +state 40 + + 10 declaration: "void" "identifier" '(' arglist ')' . ';' + 24 function: "void" "identifier" '(' arglist ')' . block + 27 block: . '{' decl_list state_list '}' + + ';' shift, and go to state 71 + '{' shift, and go to state 38 + + block go to state 72 + + +state 41 + + 14 arglist: arglist ',' . arg + 15 arg: . type + 16 | . type '&' + 17 | . type "identifier" + 18 | . type '&' "identifier" + 19 | . type "identifier" '[' ']' + 20 | . type '&' "identifier" '[' ']' + 25 type: . "int" + 26 | . "string" + + "int" shift, and go to state 2 + "string" shift, and go to state 3 + + arg go to state 73 + type go to state 25 + + +state 42 + + 17 arg: type "identifier" . [')', ','] + 19 | type "identifier" . '[' ']' + + '[' shift, and go to state 74 + + $default reduce using rule 17 (arg) + + +state 43 + + 16 arg: type '&' . [')', ','] + 18 | type '&' . "identifier" + 20 | type '&' . "identifier" '[' ']' + + "identifier" shift, and go to state 75 + + $default reduce using rule 16 (arg) + + +state 44 + + 7 declaration: type "identifier" '(' ')' ';' . + + $default reduce using rule 7 (declaration) + + +state 45 + + 21 function: type "identifier" '(' ')' block . + + $default reduce using rule 21 (function) + + +state 46 + + 8 declaration: type "identifier" '(' arglist ')' . ';' + 22 function: type "identifier" '(' arglist ')' . block + 27 block: . '{' decl_list state_list '}' + + ';' shift, and go to state 76 + '{' shift, and go to state 38 + + block go to state 77 + + +state 47 + + 57 expr: . expr "&&" expr + 58 | . expr "||" expr + 59 | . expr "==" expr + 60 | . expr "!=" expr + 61 | . expr '>' expr + 62 | . expr ">=" expr + 63 | . expr '<' expr + 64 | . expr "<=" expr + 65 | . expr '&' expr + 66 | . expr '|' expr + 67 | . expr "<<" expr + 68 | . expr ">>" expr + 69 | . expr '-' expr + 70 | . expr '+' expr + 71 | . expr '*' expr + 72 | . expr '/' expr + 73 | . expr '%' expr + 74 | . '-' expr + 75 | . '(' expr ')' + 76 | . value + 77 | . "ival" + 78 | . "sval" + 79 | . "identifier" '(' args ')' + 79 | "identifier" '(' . args ')' + 80 | . "identifier" '(' ')' + 80 | "identifier" '(' . ')' + 81 value: . "identifier" + 82 | . "identifier" '[' expr ']' + 83 args: . expr + 84 | . args ',' expr + + "ival" shift, and go to state 28 + "identifier" shift, and go to state 29 + "sval" shift, and go to state 30 + '-' shift, and go to state 31 + '(' shift, and go to state 32 + ')' shift, and go to state 78 + + expr go to state 79 + value go to state 34 + args go to state 80 + + +state 48 + + 57 expr: expr . "&&" expr + 58 | expr . "||" expr + 59 | expr . "==" expr + 60 | expr . "!=" expr + 61 | expr . '>' expr + 62 | expr . ">=" expr + 63 | expr . '<' expr + 64 | expr . "<=" expr + 65 | expr . '&' expr + 66 | expr . '|' expr + 67 | expr . "<<" expr + 68 | expr . ">>" expr + 69 | expr . '-' expr + 70 | expr . '+' expr + 71 | expr . '*' expr + 72 | expr . '/' expr + 73 | expr . '%' expr + 74 | '-' expr . ["||", "&&", "==", "!=", ">=", "<=", "<<", ">>", '>', '<', '&', '|', '+', '-', '*', '/', '%', ';', ')', ',', ']', ':'] + + $default reduce using rule 74 (expr) + + Conflict between rule 74 and token "||" resolved as reduce ("||" < NEG). + Conflict between rule 74 and token "&&" resolved as reduce ("&&" < NEG). + Conflict between rule 74 and token "==" resolved as reduce ("==" < NEG). + Conflict between rule 74 and token "!=" resolved as reduce ("!=" < NEG). + Conflict between rule 74 and token ">=" resolved as reduce (">=" < NEG). + Conflict between rule 74 and token "<=" resolved as reduce ("<=" < NEG). + Conflict between rule 74 and token "<<" resolved as reduce ("<<" < NEG). + Conflict between rule 74 and token ">>" resolved as reduce (">>" < NEG). + Conflict between rule 74 and token '>' resolved as reduce ('>' < NEG). + Conflict between rule 74 and token '<' resolved as reduce ('<' < NEG). + Conflict between rule 74 and token '&' resolved as reduce ('&' < NEG). + Conflict between rule 74 and token '|' resolved as reduce ('|' < NEG). + Conflict between rule 74 and token '+' resolved as reduce ('+' < NEG). + Conflict between rule 74 and token '-' resolved as reduce ('-' < NEG). + Conflict between rule 74 and token '*' resolved as reduce ('*' < NEG). + Conflict between rule 74 and token '/' resolved as reduce ('/' < NEG). + Conflict between rule 74 and token '%' resolved as reduce ('%' < NEG). + + +state 49 + + 57 expr: expr . "&&" expr + 58 | expr . "||" expr + 59 | expr . "==" expr + 60 | expr . "!=" expr + 61 | expr . '>' expr + 62 | expr . ">=" expr + 63 | expr . '<' expr + 64 | expr . "<=" expr + 65 | expr . '&' expr + 66 | expr . '|' expr + 67 | expr . "<<" expr + 68 | expr . ">>" expr + 69 | expr . '-' expr + 70 | expr . '+' expr + 71 | expr . '*' expr + 72 | expr . '/' expr + 73 | expr . '%' expr + 75 | '(' expr . ')' + + "||" shift, and go to state 50 + "&&" shift, and go to state 51 + "==" shift, and go to state 52 + "!=" shift, and go to state 53 + ">=" shift, and go to state 54 + "<=" shift, and go to state 55 + "<<" shift, and go to state 56 + ">>" shift, and go to state 57 + '>' shift, and go to state 58 + '<' shift, and go to state 59 + '&' shift, and go to state 60 + '|' shift, and go to state 61 + '+' shift, and go to state 62 + '-' shift, and go to state 63 + '*' shift, and go to state 64 + '/' shift, and go to state 65 + '%' shift, and go to state 66 + ')' shift, and go to state 81 + + +state 50 + + 57 expr: . expr "&&" expr + 58 | . expr "||" expr + 58 | expr "||" . expr + 59 | . expr "==" expr + 60 | . expr "!=" expr + 61 | . expr '>' expr + 62 | . expr ">=" expr + 63 | . expr '<' expr + 64 | . expr "<=" expr + 65 | . expr '&' expr + 66 | . expr '|' expr + 67 | . expr "<<" expr + 68 | . expr ">>" expr + 69 | . expr '-' expr + 70 | . expr '+' expr + 71 | . expr '*' expr + 72 | . expr '/' expr + 73 | . expr '%' expr + 74 | . '-' expr + 75 | . '(' expr ')' + 76 | . value + 77 | . "ival" + 78 | . "sval" + 79 | . "identifier" '(' args ')' + 80 | . "identifier" '(' ')' + 81 value: . "identifier" + 82 | . "identifier" '[' expr ']' + + "ival" shift, and go to state 28 + "identifier" shift, and go to state 29 + "sval" shift, and go to state 30 + '-' shift, and go to state 31 + '(' shift, and go to state 32 + + expr go to state 82 + value go to state 34 + + +state 51 + + 57 expr: . expr "&&" expr + 57 | expr "&&" . expr + 58 | . expr "||" expr + 59 | . expr "==" expr + 60 | . expr "!=" expr + 61 | . expr '>' expr + 62 | . expr ">=" expr + 63 | . expr '<' expr + 64 | . expr "<=" expr + 65 | . expr '&' expr + 66 | . expr '|' expr + 67 | . expr "<<" expr + 68 | . expr ">>" expr + 69 | . expr '-' expr + 70 | . expr '+' expr + 71 | . expr '*' expr + 72 | . expr '/' expr + 73 | . expr '%' expr + 74 | . '-' expr + 75 | . '(' expr ')' + 76 | . value + 77 | . "ival" + 78 | . "sval" + 79 | . "identifier" '(' args ')' + 80 | . "identifier" '(' ')' + 81 value: . "identifier" + 82 | . "identifier" '[' expr ']' + + "ival" shift, and go to state 28 + "identifier" shift, and go to state 29 + "sval" shift, and go to state 30 + '-' shift, and go to state 31 + '(' shift, and go to state 32 + + expr go to state 83 + value go to state 34 + + +state 52 + + 57 expr: . expr "&&" expr + 58 | . expr "||" expr + 59 | . expr "==" expr + 59 | expr "==" . expr + 60 | . expr "!=" expr + 61 | . expr '>' expr + 62 | . expr ">=" expr + 63 | . expr '<' expr + 64 | . expr "<=" expr + 65 | . expr '&' expr + 66 | . expr '|' expr + 67 | . expr "<<" expr + 68 | . expr ">>" expr + 69 | . expr '-' expr + 70 | . expr '+' expr + 71 | . expr '*' expr + 72 | . expr '/' expr + 73 | . expr '%' expr + 74 | . '-' expr + 75 | . '(' expr ')' + 76 | . value + 77 | . "ival" + 78 | . "sval" + 79 | . "identifier" '(' args ')' + 80 | . "identifier" '(' ')' + 81 value: . "identifier" + 82 | . "identifier" '[' expr ']' + + "ival" shift, and go to state 28 + "identifier" shift, and go to state 29 + "sval" shift, and go to state 30 + '-' shift, and go to state 31 + '(' shift, and go to state 32 + + expr go to state 84 + value go to state 34 + + +state 53 + + 57 expr: . expr "&&" expr + 58 | . expr "||" expr + 59 | . expr "==" expr + 60 | . expr "!=" expr + 60 | expr "!=" . expr + 61 | . expr '>' expr + 62 | . expr ">=" expr + 63 | . expr '<' expr + 64 | . expr "<=" expr + 65 | . expr '&' expr + 66 | . expr '|' expr + 67 | . expr "<<" expr + 68 | . expr ">>" expr + 69 | . expr '-' expr + 70 | . expr '+' expr + 71 | . expr '*' expr + 72 | . expr '/' expr + 73 | . expr '%' expr + 74 | . '-' expr + 75 | . '(' expr ')' + 76 | . value + 77 | . "ival" + 78 | . "sval" + 79 | . "identifier" '(' args ')' + 80 | . "identifier" '(' ')' + 81 value: . "identifier" + 82 | . "identifier" '[' expr ']' + + "ival" shift, and go to state 28 + "identifier" shift, and go to state 29 + "sval" shift, and go to state 30 + '-' shift, and go to state 31 + '(' shift, and go to state 32 + + expr go to state 85 + value go to state 34 + + +state 54 + + 57 expr: . expr "&&" expr + 58 | . expr "||" expr + 59 | . expr "==" expr + 60 | . expr "!=" expr + 61 | . expr '>' expr + 62 | . expr ">=" expr + 62 | expr ">=" . expr + 63 | . expr '<' expr + 64 | . expr "<=" expr + 65 | . expr '&' expr + 66 | . expr '|' expr + 67 | . expr "<<" expr + 68 | . expr ">>" expr + 69 | . expr '-' expr + 70 | . expr '+' expr + 71 | . expr '*' expr + 72 | . expr '/' expr + 73 | . expr '%' expr + 74 | . '-' expr + 75 | . '(' expr ')' + 76 | . value + 77 | . "ival" + 78 | . "sval" + 79 | . "identifier" '(' args ')' + 80 | . "identifier" '(' ')' + 81 value: . "identifier" + 82 | . "identifier" '[' expr ']' + + "ival" shift, and go to state 28 + "identifier" shift, and go to state 29 + "sval" shift, and go to state 30 + '-' shift, and go to state 31 + '(' shift, and go to state 32 + + expr go to state 86 + value go to state 34 + + +state 55 + + 57 expr: . expr "&&" expr + 58 | . expr "||" expr + 59 | . expr "==" expr + 60 | . expr "!=" expr + 61 | . expr '>' expr + 62 | . expr ">=" expr + 63 | . expr '<' expr + 64 | . expr "<=" expr + 64 | expr "<=" . expr + 65 | . expr '&' expr + 66 | . expr '|' expr + 67 | . expr "<<" expr + 68 | . expr ">>" expr + 69 | . expr '-' expr + 70 | . expr '+' expr + 71 | . expr '*' expr + 72 | . expr '/' expr + 73 | . expr '%' expr + 74 | . '-' expr + 75 | . '(' expr ')' + 76 | . value + 77 | . "ival" + 78 | . "sval" + 79 | . "identifier" '(' args ')' + 80 | . "identifier" '(' ')' + 81 value: . "identifier" + 82 | . "identifier" '[' expr ']' + + "ival" shift, and go to state 28 + "identifier" shift, and go to state 29 + "sval" shift, and go to state 30 + '-' shift, and go to state 31 + '(' shift, and go to state 32 + + expr go to state 87 + value go to state 34 + + +state 56 + + 57 expr: . expr "&&" expr + 58 | . expr "||" expr + 59 | . expr "==" expr + 60 | . expr "!=" expr + 61 | . expr '>' expr + 62 | . expr ">=" expr + 63 | . expr '<' expr + 64 | . expr "<=" expr + 65 | . expr '&' expr + 66 | . expr '|' expr + 67 | . expr "<<" expr + 67 | expr "<<" . expr + 68 | . expr ">>" expr + 69 | . expr '-' expr + 70 | . expr '+' expr + 71 | . expr '*' expr + 72 | . expr '/' expr + 73 | . expr '%' expr + 74 | . '-' expr + 75 | . '(' expr ')' + 76 | . value + 77 | . "ival" + 78 | . "sval" + 79 | . "identifier" '(' args ')' + 80 | . "identifier" '(' ')' + 81 value: . "identifier" + 82 | . "identifier" '[' expr ']' + + "ival" shift, and go to state 28 + "identifier" shift, and go to state 29 + "sval" shift, and go to state 30 + '-' shift, and go to state 31 + '(' shift, and go to state 32 + + expr go to state 88 + value go to state 34 + + +state 57 + + 57 expr: . expr "&&" expr + 58 | . expr "||" expr + 59 | . expr "==" expr + 60 | . expr "!=" expr + 61 | . expr '>' expr + 62 | . expr ">=" expr + 63 | . expr '<' expr + 64 | . expr "<=" expr + 65 | . expr '&' expr + 66 | . expr '|' expr + 67 | . expr "<<" expr + 68 | . expr ">>" expr + 68 | expr ">>" . expr + 69 | . expr '-' expr + 70 | . expr '+' expr + 71 | . expr '*' expr + 72 | . expr '/' expr + 73 | . expr '%' expr + 74 | . '-' expr + 75 | . '(' expr ')' + 76 | . value + 77 | . "ival" + 78 | . "sval" + 79 | . "identifier" '(' args ')' + 80 | . "identifier" '(' ')' + 81 value: . "identifier" + 82 | . "identifier" '[' expr ']' + + "ival" shift, and go to state 28 + "identifier" shift, and go to state 29 + "sval" shift, and go to state 30 + '-' shift, and go to state 31 + '(' shift, and go to state 32 + + expr go to state 89 + value go to state 34 + + +state 58 + + 57 expr: . expr "&&" expr + 58 | . expr "||" expr + 59 | . expr "==" expr + 60 | . expr "!=" expr + 61 | . expr '>' expr + 61 | expr '>' . expr + 62 | . expr ">=" expr + 63 | . expr '<' expr + 64 | . expr "<=" expr + 65 | . expr '&' expr + 66 | . expr '|' expr + 67 | . expr "<<" expr + 68 | . expr ">>" expr + 69 | . expr '-' expr + 70 | . expr '+' expr + 71 | . expr '*' expr + 72 | . expr '/' expr + 73 | . expr '%' expr + 74 | . '-' expr + 75 | . '(' expr ')' + 76 | . value + 77 | . "ival" + 78 | . "sval" + 79 | . "identifier" '(' args ')' + 80 | . "identifier" '(' ')' + 81 value: . "identifier" + 82 | . "identifier" '[' expr ']' + + "ival" shift, and go to state 28 + "identifier" shift, and go to state 29 + "sval" shift, and go to state 30 + '-' shift, and go to state 31 + '(' shift, and go to state 32 + + expr go to state 90 + value go to state 34 + + +state 59 + + 57 expr: . expr "&&" expr + 58 | . expr "||" expr + 59 | . expr "==" expr + 60 | . expr "!=" expr + 61 | . expr '>' expr + 62 | . expr ">=" expr + 63 | . expr '<' expr + 63 | expr '<' . expr + 64 | . expr "<=" expr + 65 | . expr '&' expr + 66 | . expr '|' expr + 67 | . expr "<<" expr + 68 | . expr ">>" expr + 69 | . expr '-' expr + 70 | . expr '+' expr + 71 | . expr '*' expr + 72 | . expr '/' expr + 73 | . expr '%' expr + 74 | . '-' expr + 75 | . '(' expr ')' + 76 | . value + 77 | . "ival" + 78 | . "sval" + 79 | . "identifier" '(' args ')' + 80 | . "identifier" '(' ')' + 81 value: . "identifier" + 82 | . "identifier" '[' expr ']' + + "ival" shift, and go to state 28 + "identifier" shift, and go to state 29 + "sval" shift, and go to state 30 + '-' shift, and go to state 31 + '(' shift, and go to state 32 + + expr go to state 91 + value go to state 34 + + +state 60 + + 57 expr: . expr "&&" expr + 58 | . expr "||" expr + 59 | . expr "==" expr + 60 | . expr "!=" expr + 61 | . expr '>' expr + 62 | . expr ">=" expr + 63 | . expr '<' expr + 64 | . expr "<=" expr + 65 | . expr '&' expr + 65 | expr '&' . expr + 66 | . expr '|' expr + 67 | . expr "<<" expr + 68 | . expr ">>" expr + 69 | . expr '-' expr + 70 | . expr '+' expr + 71 | . expr '*' expr + 72 | . expr '/' expr + 73 | . expr '%' expr + 74 | . '-' expr + 75 | . '(' expr ')' + 76 | . value + 77 | . "ival" + 78 | . "sval" + 79 | . "identifier" '(' args ')' + 80 | . "identifier" '(' ')' + 81 value: . "identifier" + 82 | . "identifier" '[' expr ']' + + "ival" shift, and go to state 28 + "identifier" shift, and go to state 29 + "sval" shift, and go to state 30 + '-' shift, and go to state 31 + '(' shift, and go to state 32 + + expr go to state 92 + value go to state 34 + + +state 61 + + 57 expr: . expr "&&" expr + 58 | . expr "||" expr + 59 | . expr "==" expr + 60 | . expr "!=" expr + 61 | . expr '>' expr + 62 | . expr ">=" expr + 63 | . expr '<' expr + 64 | . expr "<=" expr + 65 | . expr '&' expr + 66 | . expr '|' expr + 66 | expr '|' . expr + 67 | . expr "<<" expr + 68 | . expr ">>" expr + 69 | . expr '-' expr + 70 | . expr '+' expr + 71 | . expr '*' expr + 72 | . expr '/' expr + 73 | . expr '%' expr + 74 | . '-' expr + 75 | . '(' expr ')' + 76 | . value + 77 | . "ival" + 78 | . "sval" + 79 | . "identifier" '(' args ')' + 80 | . "identifier" '(' ')' + 81 value: . "identifier" + 82 | . "identifier" '[' expr ']' + + "ival" shift, and go to state 28 + "identifier" shift, and go to state 29 + "sval" shift, and go to state 30 + '-' shift, and go to state 31 + '(' shift, and go to state 32 + + expr go to state 93 + value go to state 34 + + +state 62 + + 57 expr: . expr "&&" expr + 58 | . expr "||" expr + 59 | . expr "==" expr + 60 | . expr "!=" expr + 61 | . expr '>' expr + 62 | . expr ">=" expr + 63 | . expr '<' expr + 64 | . expr "<=" expr + 65 | . expr '&' expr + 66 | . expr '|' expr + 67 | . expr "<<" expr + 68 | . expr ">>" expr + 69 | . expr '-' expr + 70 | . expr '+' expr + 70 | expr '+' . expr + 71 | . expr '*' expr + 72 | . expr '/' expr + 73 | . expr '%' expr + 74 | . '-' expr + 75 | . '(' expr ')' + 76 | . value + 77 | . "ival" + 78 | . "sval" + 79 | . "identifier" '(' args ')' + 80 | . "identifier" '(' ')' + 81 value: . "identifier" + 82 | . "identifier" '[' expr ']' + + "ival" shift, and go to state 28 + "identifier" shift, and go to state 29 + "sval" shift, and go to state 30 + '-' shift, and go to state 31 + '(' shift, and go to state 32 + + expr go to state 94 + value go to state 34 + + +state 63 + + 57 expr: . expr "&&" expr + 58 | . expr "||" expr + 59 | . expr "==" expr + 60 | . expr "!=" expr + 61 | . expr '>' expr + 62 | . expr ">=" expr + 63 | . expr '<' expr + 64 | . expr "<=" expr + 65 | . expr '&' expr + 66 | . expr '|' expr + 67 | . expr "<<" expr + 68 | . expr ">>" expr + 69 | . expr '-' expr + 69 | expr '-' . expr + 70 | . expr '+' expr + 71 | . expr '*' expr + 72 | . expr '/' expr + 73 | . expr '%' expr + 74 | . '-' expr + 75 | . '(' expr ')' + 76 | . value + 77 | . "ival" + 78 | . "sval" + 79 | . "identifier" '(' args ')' + 80 | . "identifier" '(' ')' + 81 value: . "identifier" + 82 | . "identifier" '[' expr ']' + + "ival" shift, and go to state 28 + "identifier" shift, and go to state 29 + "sval" shift, and go to state 30 + '-' shift, and go to state 31 + '(' shift, and go to state 32 + + expr go to state 95 + value go to state 34 + + +state 64 + + 57 expr: . expr "&&" expr + 58 | . expr "||" expr + 59 | . expr "==" expr + 60 | . expr "!=" expr + 61 | . expr '>' expr + 62 | . expr ">=" expr + 63 | . expr '<' expr + 64 | . expr "<=" expr + 65 | . expr '&' expr + 66 | . expr '|' expr + 67 | . expr "<<" expr + 68 | . expr ">>" expr + 69 | . expr '-' expr + 70 | . expr '+' expr + 71 | . expr '*' expr + 71 | expr '*' . expr + 72 | . expr '/' expr + 73 | . expr '%' expr + 74 | . '-' expr + 75 | . '(' expr ')' + 76 | . value + 77 | . "ival" + 78 | . "sval" + 79 | . "identifier" '(' args ')' + 80 | . "identifier" '(' ')' + 81 value: . "identifier" + 82 | . "identifier" '[' expr ']' + + "ival" shift, and go to state 28 + "identifier" shift, and go to state 29 + "sval" shift, and go to state 30 + '-' shift, and go to state 31 + '(' shift, and go to state 32 + + expr go to state 96 + value go to state 34 + + +state 65 + + 57 expr: . expr "&&" expr + 58 | . expr "||" expr + 59 | . expr "==" expr + 60 | . expr "!=" expr + 61 | . expr '>' expr + 62 | . expr ">=" expr + 63 | . expr '<' expr + 64 | . expr "<=" expr + 65 | . expr '&' expr + 66 | . expr '|' expr + 67 | . expr "<<" expr + 68 | . expr ">>" expr + 69 | . expr '-' expr + 70 | . expr '+' expr + 71 | . expr '*' expr + 72 | . expr '/' expr + 72 | expr '/' . expr + 73 | . expr '%' expr + 74 | . '-' expr + 75 | . '(' expr ')' + 76 | . value + 77 | . "ival" + 78 | . "sval" + 79 | . "identifier" '(' args ')' + 80 | . "identifier" '(' ')' + 81 value: . "identifier" + 82 | . "identifier" '[' expr ']' + + "ival" shift, and go to state 28 + "identifier" shift, and go to state 29 + "sval" shift, and go to state 30 + '-' shift, and go to state 31 + '(' shift, and go to state 32 + + expr go to state 97 + value go to state 34 + + +state 66 + + 57 expr: . expr "&&" expr + 58 | . expr "||" expr + 59 | . expr "==" expr + 60 | . expr "!=" expr + 61 | . expr '>' expr + 62 | . expr ">=" expr + 63 | . expr '<' expr + 64 | . expr "<=" expr + 65 | . expr '&' expr + 66 | . expr '|' expr + 67 | . expr "<<" expr + 68 | . expr ">>" expr + 69 | . expr '-' expr + 70 | . expr '+' expr + 71 | . expr '*' expr + 72 | . expr '/' expr + 73 | . expr '%' expr + 73 | expr '%' . expr + 74 | . '-' expr + 75 | . '(' expr ')' + 76 | . value + 77 | . "ival" + 78 | . "sval" + 79 | . "identifier" '(' args ')' + 80 | . "identifier" '(' ')' + 81 value: . "identifier" + 82 | . "identifier" '[' expr ']' + + "ival" shift, and go to state 28 + "identifier" shift, and go to state 29 + "sval" shift, and go to state 30 + '-' shift, and go to state 31 + '(' shift, and go to state 32 + + expr go to state 98 + value go to state 34 + + +state 67 + + 82 value: "identifier" '[' expr ']' . + + $default reduce using rule 82 (value) + + +state 68 + + 11 value_list: . value + 12 | . value_list ',' value + 32 decls: type . value_list ';' + 81 value: . "identifier" + 82 | . "identifier" '[' expr ']' + + "identifier" shift, and go to state 35 + + value_list go to state 99 + value go to state 16 + + +state 69 + + 27 block: . '{' decl_list state_list '}' + 27 | '{' decl_list . state_list '}' + 30 state_list: . ['}'] + 31 | . states + 34 states: . statement + 35 | . states statement + 36 statement: . ';' + 37 | . assign ';' + 38 | . "identifier" '(' args ')' ';' + 39 | . "identifier" '(' ')' ';' + 40 | . "case" expr ':' + 41 | . "default" ':' + 42 | . "break" ';' + 43 | . "return" ';' + 44 | . "return" expr ';' + 45 | . "if" '(' expr ')' statement + 46 | . "if" '(' expr ')' statement "else" statement + 47 | . "for" '(' assign ';' expr ';' assign ')' statement + 48 | . "while" '(' expr ')' statement + 49 | . "switch" '(' expr ')' '{' state_list '}' + 50 | . block + 51 assign: . value '=' expr + 52 | . value "+=" expr + 53 | . value "-=" expr + 54 | . value "*=" expr + 55 | . value "/=" expr + 56 | . value "%=" expr + 81 value: . "identifier" + 82 | . "identifier" '[' expr ']' + + "identifier" shift, and go to state 100 + "if" shift, and go to state 101 + "while" shift, and go to state 102 + "for" shift, and go to state 103 + "switch" shift, and go to state 104 + "case" shift, and go to state 105 + "default" shift, and go to state 106 + "break" shift, and go to state 107 + "return" shift, and go to state 108 + ';' shift, and go to state 109 + '{' shift, and go to state 38 + + $default reduce using rule 30 (state_list) + + block go to state 110 + state_list go to state 111 + states go to state 112 + statement go to state 113 + assign go to state 114 + value go to state 115 + + +state 70 + + 25 type: . "int" + 26 | . "string" + 29 decl_list: decls . ["identifier", "if", "while", "for", "switch", "case", "default", "break", "return", ';', '{', '}'] + 33 decls: decls . type value_list ';' + + "int" shift, and go to state 2 + "string" shift, and go to state 3 + + $default reduce using rule 29 (decl_list) + + type go to state 116 + + +state 71 + + 10 declaration: "void" "identifier" '(' arglist ')' ';' . + + $default reduce using rule 10 (declaration) + + +state 72 + + 24 function: "void" "identifier" '(' arglist ')' block . + + $default reduce using rule 24 (function) + + +state 73 + + 14 arglist: arglist ',' arg . + + $default reduce using rule 14 (arglist) + + +state 74 + + 19 arg: type "identifier" '[' . ']' + + ']' shift, and go to state 117 + + +state 75 + + 18 arg: type '&' "identifier" . [')', ','] + 20 | type '&' "identifier" . '[' ']' + + '[' shift, and go to state 118 + + $default reduce using rule 18 (arg) + + +state 76 + + 8 declaration: type "identifier" '(' arglist ')' ';' . + + $default reduce using rule 8 (declaration) + + +state 77 + + 22 function: type "identifier" '(' arglist ')' block . + + $default reduce using rule 22 (function) + + +state 78 + + 80 expr: "identifier" '(' ')' . + + $default reduce using rule 80 (expr) + + +state 79 + + 57 expr: expr . "&&" expr + 58 | expr . "||" expr + 59 | expr . "==" expr + 60 | expr . "!=" expr + 61 | expr . '>' expr + 62 | expr . ">=" expr + 63 | expr . '<' expr + 64 | expr . "<=" expr + 65 | expr . '&' expr + 66 | expr . '|' expr + 67 | expr . "<<" expr + 68 | expr . ">>" expr + 69 | expr . '-' expr + 70 | expr . '+' expr + 71 | expr . '*' expr + 72 | expr . '/' expr + 73 | expr . '%' expr + 83 args: expr . [')', ','] + + "||" shift, and go to state 50 + "&&" shift, and go to state 51 + "==" shift, and go to state 52 + "!=" shift, and go to state 53 + ">=" shift, and go to state 54 + "<=" shift, and go to state 55 + "<<" shift, and go to state 56 + ">>" shift, and go to state 57 + '>' shift, and go to state 58 + '<' shift, and go to state 59 + '&' shift, and go to state 60 + '|' shift, and go to state 61 + '+' shift, and go to state 62 + '-' shift, and go to state 63 + '*' shift, and go to state 64 + '/' shift, and go to state 65 + '%' shift, and go to state 66 + + $default reduce using rule 83 (args) + + +state 80 + + 79 expr: "identifier" '(' args . ')' + 84 args: args . ',' expr + + ')' shift, and go to state 119 + ',' shift, and go to state 120 + + +state 81 + + 75 expr: '(' expr ')' . + + $default reduce using rule 75 (expr) + + +state 82 + + 57 expr: expr . "&&" expr + 58 | expr . "||" expr ["||", ';', ')', ',', ']', ':'] + 58 | expr "||" expr . ["||", ';', ')', ',', ']', ':'] + 59 | expr . "==" expr + 60 | expr . "!=" expr + 61 | expr . '>' expr + 62 | expr . ">=" expr + 63 | expr . '<' expr + 64 | expr . "<=" expr + 65 | expr . '&' expr + 66 | expr . '|' expr + 67 | expr . "<<" expr + 68 | expr . ">>" expr + 69 | expr . '-' expr + 70 | expr . '+' expr + 71 | expr . '*' expr + 72 | expr . '/' expr + 73 | expr . '%' expr + + "&&" shift, and go to state 51 + "==" shift, and go to state 52 + "!=" shift, and go to state 53 + ">=" shift, and go to state 54 + "<=" shift, and go to state 55 + "<<" shift, and go to state 56 + ">>" shift, and go to state 57 + '>' shift, and go to state 58 + '<' shift, and go to state 59 + '&' shift, and go to state 60 + '|' shift, and go to state 61 + '+' shift, and go to state 62 + '-' shift, and go to state 63 + '*' shift, and go to state 64 + '/' shift, and go to state 65 + '%' shift, and go to state 66 + + $default reduce using rule 58 (expr) + + Conflict between rule 58 and token "||" resolved as reduce (%left "||"). + Conflict between rule 58 and token "&&" resolved as shift ("||" < "&&"). + Conflict between rule 58 and token "==" resolved as shift ("||" < "=="). + Conflict between rule 58 and token "!=" resolved as shift ("||" < "!="). + Conflict between rule 58 and token ">=" resolved as shift ("||" < ">="). + Conflict between rule 58 and token "<=" resolved as shift ("||" < "<="). + Conflict between rule 58 and token "<<" resolved as shift ("||" < "<<"). + Conflict between rule 58 and token ">>" resolved as shift ("||" < ">>"). + Conflict between rule 58 and token '>' resolved as shift ("||" < '>'). + Conflict between rule 58 and token '<' resolved as shift ("||" < '<'). + Conflict between rule 58 and token '&' resolved as shift ("||" < '&'). + Conflict between rule 58 and token '|' resolved as shift ("||" < '|'). + Conflict between rule 58 and token '+' resolved as shift ("||" < '+'). + Conflict between rule 58 and token '-' resolved as shift ("||" < '-'). + Conflict between rule 58 and token '*' resolved as shift ("||" < '*'). + Conflict between rule 58 and token '/' resolved as shift ("||" < '/'). + Conflict between rule 58 and token '%' resolved as shift ("||" < '%'). + + +state 83 + + 57 expr: expr . "&&" expr ["||", "&&", ';', ')', ',', ']', ':'] + 57 | expr "&&" expr . ["||", "&&", ';', ')', ',', ']', ':'] + 58 | expr . "||" expr + 59 | expr . "==" expr + 60 | expr . "!=" expr + 61 | expr . '>' expr + 62 | expr . ">=" expr + 63 | expr . '<' expr + 64 | expr . "<=" expr + 65 | expr . '&' expr + 66 | expr . '|' expr + 67 | expr . "<<" expr + 68 | expr . ">>" expr + 69 | expr . '-' expr + 70 | expr . '+' expr + 71 | expr . '*' expr + 72 | expr . '/' expr + 73 | expr . '%' expr + + "==" shift, and go to state 52 + "!=" shift, and go to state 53 + ">=" shift, and go to state 54 + "<=" shift, and go to state 55 + "<<" shift, and go to state 56 + ">>" shift, and go to state 57 + '>' shift, and go to state 58 + '<' shift, and go to state 59 + '&' shift, and go to state 60 + '|' shift, and go to state 61 + '+' shift, and go to state 62 + '-' shift, and go to state 63 + '*' shift, and go to state 64 + '/' shift, and go to state 65 + '%' shift, and go to state 66 + + $default reduce using rule 57 (expr) + + Conflict between rule 57 and token "||" resolved as reduce ("||" < "&&"). + Conflict between rule 57 and token "&&" resolved as reduce (%left "&&"). + Conflict between rule 57 and token "==" resolved as shift ("&&" < "=="). + Conflict between rule 57 and token "!=" resolved as shift ("&&" < "!="). + Conflict between rule 57 and token ">=" resolved as shift ("&&" < ">="). + Conflict between rule 57 and token "<=" resolved as shift ("&&" < "<="). + Conflict between rule 57 and token "<<" resolved as shift ("&&" < "<<"). + Conflict between rule 57 and token ">>" resolved as shift ("&&" < ">>"). + Conflict between rule 57 and token '>' resolved as shift ("&&" < '>'). + Conflict between rule 57 and token '<' resolved as shift ("&&" < '<'). + Conflict between rule 57 and token '&' resolved as shift ("&&" < '&'). + Conflict between rule 57 and token '|' resolved as shift ("&&" < '|'). + Conflict between rule 57 and token '+' resolved as shift ("&&" < '+'). + Conflict between rule 57 and token '-' resolved as shift ("&&" < '-'). + Conflict between rule 57 and token '*' resolved as shift ("&&" < '*'). + Conflict between rule 57 and token '/' resolved as shift ("&&" < '/'). + Conflict between rule 57 and token '%' resolved as shift ("&&" < '%'). + + +state 84 + + 57 expr: expr . "&&" expr + 58 | expr . "||" expr + 59 | expr . "==" expr ["||", "&&", ';', ')', ',', ']', ':'] + 59 | expr "==" expr . ["||", "&&", ';', ')', ',', ']', ':'] + 60 | expr . "!=" expr + 61 | expr . '>' expr + 62 | expr . ">=" expr + 63 | expr . '<' expr + 64 | expr . "<=" expr + 65 | expr . '&' expr + 66 | expr . '|' expr + 67 | expr . "<<" expr + 68 | expr . ">>" expr + 69 | expr . '-' expr + 70 | expr . '+' expr + 71 | expr . '*' expr + 72 | expr . '/' expr + 73 | expr . '%' expr + + "<<" shift, and go to state 56 + ">>" shift, and go to state 57 + '&' shift, and go to state 60 + '|' shift, and go to state 61 + '+' shift, and go to state 62 + '-' shift, and go to state 63 + '*' shift, and go to state 64 + '/' shift, and go to state 65 + '%' shift, and go to state 66 + + "==" error (nonassociative) + "!=" error (nonassociative) + ">=" error (nonassociative) + "<=" error (nonassociative) + '>' error (nonassociative) + '<' error (nonassociative) + + $default reduce using rule 59 (expr) + + Conflict between rule 59 and token "||" resolved as reduce ("||" < "=="). + Conflict between rule 59 and token "&&" resolved as reduce ("&&" < "=="). + Conflict between rule 59 and token "==" resolved as an error (%nonassoc "=="). + Conflict between rule 59 and token "!=" resolved as an error (%nonassoc "!="). + Conflict between rule 59 and token ">=" resolved as an error (%nonassoc ">="). + Conflict between rule 59 and token "<=" resolved as an error (%nonassoc "<="). + Conflict between rule 59 and token "<<" resolved as shift ("==" < "<<"). + Conflict between rule 59 and token ">>" resolved as shift ("==" < ">>"). + Conflict between rule 59 and token '>' resolved as an error (%nonassoc '>'). + Conflict between rule 59 and token '<' resolved as an error (%nonassoc '<'). + Conflict between rule 59 and token '&' resolved as shift ("==" < '&'). + Conflict between rule 59 and token '|' resolved as shift ("==" < '|'). + Conflict between rule 59 and token '+' resolved as shift ("==" < '+'). + Conflict between rule 59 and token '-' resolved as shift ("==" < '-'). + Conflict between rule 59 and token '*' resolved as shift ("==" < '*'). + Conflict between rule 59 and token '/' resolved as shift ("==" < '/'). + Conflict between rule 59 and token '%' resolved as shift ("==" < '%'). + + +state 85 + + 57 expr: expr . "&&" expr + 58 | expr . "||" expr + 59 | expr . "==" expr + 60 | expr . "!=" expr ["||", "&&", ';', ')', ',', ']', ':'] + 60 | expr "!=" expr . ["||", "&&", ';', ')', ',', ']', ':'] + 61 | expr . '>' expr + 62 | expr . ">=" expr + 63 | expr . '<' expr + 64 | expr . "<=" expr + 65 | expr . '&' expr + 66 | expr . '|' expr + 67 | expr . "<<" expr + 68 | expr . ">>" expr + 69 | expr . '-' expr + 70 | expr . '+' expr + 71 | expr . '*' expr + 72 | expr . '/' expr + 73 | expr . '%' expr + + "<<" shift, and go to state 56 + ">>" shift, and go to state 57 + '&' shift, and go to state 60 + '|' shift, and go to state 61 + '+' shift, and go to state 62 + '-' shift, and go to state 63 + '*' shift, and go to state 64 + '/' shift, and go to state 65 + '%' shift, and go to state 66 + + "==" error (nonassociative) + "!=" error (nonassociative) + ">=" error (nonassociative) + "<=" error (nonassociative) + '>' error (nonassociative) + '<' error (nonassociative) + + $default reduce using rule 60 (expr) + + Conflict between rule 60 and token "||" resolved as reduce ("||" < "!="). + Conflict between rule 60 and token "&&" resolved as reduce ("&&" < "!="). + Conflict between rule 60 and token "==" resolved as an error (%nonassoc "=="). + Conflict between rule 60 and token "!=" resolved as an error (%nonassoc "!="). + Conflict between rule 60 and token ">=" resolved as an error (%nonassoc ">="). + Conflict between rule 60 and token "<=" resolved as an error (%nonassoc "<="). + Conflict between rule 60 and token "<<" resolved as shift ("!=" < "<<"). + Conflict between rule 60 and token ">>" resolved as shift ("!=" < ">>"). + Conflict between rule 60 and token '>' resolved as an error (%nonassoc '>'). + Conflict between rule 60 and token '<' resolved as an error (%nonassoc '<'). + Conflict between rule 60 and token '&' resolved as shift ("!=" < '&'). + Conflict between rule 60 and token '|' resolved as shift ("!=" < '|'). + Conflict between rule 60 and token '+' resolved as shift ("!=" < '+'). + Conflict between rule 60 and token '-' resolved as shift ("!=" < '-'). + Conflict between rule 60 and token '*' resolved as shift ("!=" < '*'). + Conflict between rule 60 and token '/' resolved as shift ("!=" < '/'). + Conflict between rule 60 and token '%' resolved as shift ("!=" < '%'). + + +state 86 + + 57 expr: expr . "&&" expr + 58 | expr . "||" expr + 59 | expr . "==" expr + 60 | expr . "!=" expr + 61 | expr . '>' expr + 62 | expr . ">=" expr ["||", "&&", ';', ')', ',', ']', ':'] + 62 | expr ">=" expr . ["||", "&&", ';', ')', ',', ']', ':'] + 63 | expr . '<' expr + 64 | expr . "<=" expr + 65 | expr . '&' expr + 66 | expr . '|' expr + 67 | expr . "<<" expr + 68 | expr . ">>" expr + 69 | expr . '-' expr + 70 | expr . '+' expr + 71 | expr . '*' expr + 72 | expr . '/' expr + 73 | expr . '%' expr + + "<<" shift, and go to state 56 + ">>" shift, and go to state 57 + '&' shift, and go to state 60 + '|' shift, and go to state 61 + '+' shift, and go to state 62 + '-' shift, and go to state 63 + '*' shift, and go to state 64 + '/' shift, and go to state 65 + '%' shift, and go to state 66 + + "==" error (nonassociative) + "!=" error (nonassociative) + ">=" error (nonassociative) + "<=" error (nonassociative) + '>' error (nonassociative) + '<' error (nonassociative) + + $default reduce using rule 62 (expr) + + Conflict between rule 62 and token "||" resolved as reduce ("||" < ">="). + Conflict between rule 62 and token "&&" resolved as reduce ("&&" < ">="). + Conflict between rule 62 and token "==" resolved as an error (%nonassoc "=="). + Conflict between rule 62 and token "!=" resolved as an error (%nonassoc "!="). + Conflict between rule 62 and token ">=" resolved as an error (%nonassoc ">="). + Conflict between rule 62 and token "<=" resolved as an error (%nonassoc "<="). + Conflict between rule 62 and token "<<" resolved as shift (">=" < "<<"). + Conflict between rule 62 and token ">>" resolved as shift (">=" < ">>"). + Conflict between rule 62 and token '>' resolved as an error (%nonassoc '>'). + Conflict between rule 62 and token '<' resolved as an error (%nonassoc '<'). + Conflict between rule 62 and token '&' resolved as shift (">=" < '&'). + Conflict between rule 62 and token '|' resolved as shift (">=" < '|'). + Conflict between rule 62 and token '+' resolved as shift (">=" < '+'). + Conflict between rule 62 and token '-' resolved as shift (">=" < '-'). + Conflict between rule 62 and token '*' resolved as shift (">=" < '*'). + Conflict between rule 62 and token '/' resolved as shift (">=" < '/'). + Conflict between rule 62 and token '%' resolved as shift (">=" < '%'). + + +state 87 + + 57 expr: expr . "&&" expr + 58 | expr . "||" expr + 59 | expr . "==" expr + 60 | expr . "!=" expr + 61 | expr . '>' expr + 62 | expr . ">=" expr + 63 | expr . '<' expr + 64 | expr . "<=" expr ["||", "&&", ';', ')', ',', ']', ':'] + 64 | expr "<=" expr . ["||", "&&", ';', ')', ',', ']', ':'] + 65 | expr . '&' expr + 66 | expr . '|' expr + 67 | expr . "<<" expr + 68 | expr . ">>" expr + 69 | expr . '-' expr + 70 | expr . '+' expr + 71 | expr . '*' expr + 72 | expr . '/' expr + 73 | expr . '%' expr + + "<<" shift, and go to state 56 + ">>" shift, and go to state 57 + '&' shift, and go to state 60 + '|' shift, and go to state 61 + '+' shift, and go to state 62 + '-' shift, and go to state 63 + '*' shift, and go to state 64 + '/' shift, and go to state 65 + '%' shift, and go to state 66 + + "==" error (nonassociative) + "!=" error (nonassociative) + ">=" error (nonassociative) + "<=" error (nonassociative) + '>' error (nonassociative) + '<' error (nonassociative) + + $default reduce using rule 64 (expr) + + Conflict between rule 64 and token "||" resolved as reduce ("||" < "<="). + Conflict between rule 64 and token "&&" resolved as reduce ("&&" < "<="). + Conflict between rule 64 and token "==" resolved as an error (%nonassoc "=="). + Conflict between rule 64 and token "!=" resolved as an error (%nonassoc "!="). + Conflict between rule 64 and token ">=" resolved as an error (%nonassoc ">="). + Conflict between rule 64 and token "<=" resolved as an error (%nonassoc "<="). + Conflict between rule 64 and token "<<" resolved as shift ("<=" < "<<"). + Conflict between rule 64 and token ">>" resolved as shift ("<=" < ">>"). + Conflict between rule 64 and token '>' resolved as an error (%nonassoc '>'). + Conflict between rule 64 and token '<' resolved as an error (%nonassoc '<'). + Conflict between rule 64 and token '&' resolved as shift ("<=" < '&'). + Conflict between rule 64 and token '|' resolved as shift ("<=" < '|'). + Conflict between rule 64 and token '+' resolved as shift ("<=" < '+'). + Conflict between rule 64 and token '-' resolved as shift ("<=" < '-'). + Conflict between rule 64 and token '*' resolved as shift ("<=" < '*'). + Conflict between rule 64 and token '/' resolved as shift ("<=" < '/'). + Conflict between rule 64 and token '%' resolved as shift ("<=" < '%'). + + +state 88 + + 57 expr: expr . "&&" expr + 58 | expr . "||" expr + 59 | expr . "==" expr + 60 | expr . "!=" expr + 61 | expr . '>' expr + 62 | expr . ">=" expr + 63 | expr . '<' expr + 64 | expr . "<=" expr + 65 | expr . '&' expr + 66 | expr . '|' expr + 67 | expr . "<<" expr ["||", "&&", "==", "!=", ">=", "<=", "<<", ">>", '>', '<', '&', '|', ';', ')', ',', ']', ':'] + 67 | expr "<<" expr . ["||", "&&", "==", "!=", ">=", "<=", "<<", ">>", '>', '<', '&', '|', ';', ')', ',', ']', ':'] + 68 | expr . ">>" expr + 69 | expr . '-' expr + 70 | expr . '+' expr + 71 | expr . '*' expr + 72 | expr . '/' expr + 73 | expr . '%' expr + + '+' shift, and go to state 62 + '-' shift, and go to state 63 + '*' shift, and go to state 64 + '/' shift, and go to state 65 + '%' shift, and go to state 66 + + $default reduce using rule 67 (expr) + + Conflict between rule 67 and token "||" resolved as reduce ("||" < "<<"). + Conflict between rule 67 and token "&&" resolved as reduce ("&&" < "<<"). + Conflict between rule 67 and token "==" resolved as reduce ("==" < "<<"). + Conflict between rule 67 and token "!=" resolved as reduce ("!=" < "<<"). + Conflict between rule 67 and token ">=" resolved as reduce (">=" < "<<"). + Conflict between rule 67 and token "<=" resolved as reduce ("<=" < "<<"). + Conflict between rule 67 and token "<<" resolved as reduce (%left "<<"). + Conflict between rule 67 and token ">>" resolved as reduce (%left ">>"). + Conflict between rule 67 and token '>' resolved as reduce ('>' < "<<"). + Conflict between rule 67 and token '<' resolved as reduce ('<' < "<<"). + Conflict between rule 67 and token '&' resolved as reduce ('&' < "<<"). + Conflict between rule 67 and token '|' resolved as reduce ('|' < "<<"). + Conflict between rule 67 and token '+' resolved as shift ("<<" < '+'). + Conflict between rule 67 and token '-' resolved as shift ("<<" < '-'). + Conflict between rule 67 and token '*' resolved as shift ("<<" < '*'). + Conflict between rule 67 and token '/' resolved as shift ("<<" < '/'). + Conflict between rule 67 and token '%' resolved as shift ("<<" < '%'). + + +state 89 + + 57 expr: expr . "&&" expr + 58 | expr . "||" expr + 59 | expr . "==" expr + 60 | expr . "!=" expr + 61 | expr . '>' expr + 62 | expr . ">=" expr + 63 | expr . '<' expr + 64 | expr . "<=" expr + 65 | expr . '&' expr + 66 | expr . '|' expr + 67 | expr . "<<" expr + 68 | expr . ">>" expr ["||", "&&", "==", "!=", ">=", "<=", "<<", ">>", '>', '<', '&', '|', ';', ')', ',', ']', ':'] + 68 | expr ">>" expr . ["||", "&&", "==", "!=", ">=", "<=", "<<", ">>", '>', '<', '&', '|', ';', ')', ',', ']', ':'] + 69 | expr . '-' expr + 70 | expr . '+' expr + 71 | expr . '*' expr + 72 | expr . '/' expr + 73 | expr . '%' expr + + '+' shift, and go to state 62 + '-' shift, and go to state 63 + '*' shift, and go to state 64 + '/' shift, and go to state 65 + '%' shift, and go to state 66 + + $default reduce using rule 68 (expr) + + Conflict between rule 68 and token "||" resolved as reduce ("||" < ">>"). + Conflict between rule 68 and token "&&" resolved as reduce ("&&" < ">>"). + Conflict between rule 68 and token "==" resolved as reduce ("==" < ">>"). + Conflict between rule 68 and token "!=" resolved as reduce ("!=" < ">>"). + Conflict between rule 68 and token ">=" resolved as reduce (">=" < ">>"). + Conflict between rule 68 and token "<=" resolved as reduce ("<=" < ">>"). + Conflict between rule 68 and token "<<" resolved as reduce (%left "<<"). + Conflict between rule 68 and token ">>" resolved as reduce (%left ">>"). + Conflict between rule 68 and token '>' resolved as reduce ('>' < ">>"). + Conflict between rule 68 and token '<' resolved as reduce ('<' < ">>"). + Conflict between rule 68 and token '&' resolved as reduce ('&' < ">>"). + Conflict between rule 68 and token '|' resolved as reduce ('|' < ">>"). + Conflict between rule 68 and token '+' resolved as shift (">>" < '+'). + Conflict between rule 68 and token '-' resolved as shift (">>" < '-'). + Conflict between rule 68 and token '*' resolved as shift (">>" < '*'). + Conflict between rule 68 and token '/' resolved as shift (">>" < '/'). + Conflict between rule 68 and token '%' resolved as shift (">>" < '%'). + + +state 90 + + 57 expr: expr . "&&" expr + 58 | expr . "||" expr + 59 | expr . "==" expr + 60 | expr . "!=" expr + 61 | expr . '>' expr ["||", "&&", ';', ')', ',', ']', ':'] + 61 | expr '>' expr . ["||", "&&", ';', ')', ',', ']', ':'] + 62 | expr . ">=" expr + 63 | expr . '<' expr + 64 | expr . "<=" expr + 65 | expr . '&' expr + 66 | expr . '|' expr + 67 | expr . "<<" expr + 68 | expr . ">>" expr + 69 | expr . '-' expr + 70 | expr . '+' expr + 71 | expr . '*' expr + 72 | expr . '/' expr + 73 | expr . '%' expr + + "<<" shift, and go to state 56 + ">>" shift, and go to state 57 + '&' shift, and go to state 60 + '|' shift, and go to state 61 + '+' shift, and go to state 62 + '-' shift, and go to state 63 + '*' shift, and go to state 64 + '/' shift, and go to state 65 + '%' shift, and go to state 66 + + "==" error (nonassociative) + "!=" error (nonassociative) + ">=" error (nonassociative) + "<=" error (nonassociative) + '>' error (nonassociative) + '<' error (nonassociative) + + $default reduce using rule 61 (expr) + + Conflict between rule 61 and token "||" resolved as reduce ("||" < '>'). + Conflict between rule 61 and token "&&" resolved as reduce ("&&" < '>'). + Conflict between rule 61 and token "==" resolved as an error (%nonassoc "=="). + Conflict between rule 61 and token "!=" resolved as an error (%nonassoc "!="). + Conflict between rule 61 and token ">=" resolved as an error (%nonassoc ">="). + Conflict between rule 61 and token "<=" resolved as an error (%nonassoc "<="). + Conflict between rule 61 and token "<<" resolved as shift ('>' < "<<"). + Conflict between rule 61 and token ">>" resolved as shift ('>' < ">>"). + Conflict between rule 61 and token '>' resolved as an error (%nonassoc '>'). + Conflict between rule 61 and token '<' resolved as an error (%nonassoc '<'). + Conflict between rule 61 and token '&' resolved as shift ('>' < '&'). + Conflict between rule 61 and token '|' resolved as shift ('>' < '|'). + Conflict between rule 61 and token '+' resolved as shift ('>' < '+'). + Conflict between rule 61 and token '-' resolved as shift ('>' < '-'). + Conflict between rule 61 and token '*' resolved as shift ('>' < '*'). + Conflict between rule 61 and token '/' resolved as shift ('>' < '/'). + Conflict between rule 61 and token '%' resolved as shift ('>' < '%'). + + +state 91 + + 57 expr: expr . "&&" expr + 58 | expr . "||" expr + 59 | expr . "==" expr + 60 | expr . "!=" expr + 61 | expr . '>' expr + 62 | expr . ">=" expr + 63 | expr . '<' expr ["||", "&&", ';', ')', ',', ']', ':'] + 63 | expr '<' expr . ["||", "&&", ';', ')', ',', ']', ':'] + 64 | expr . "<=" expr + 65 | expr . '&' expr + 66 | expr . '|' expr + 67 | expr . "<<" expr + 68 | expr . ">>" expr + 69 | expr . '-' expr + 70 | expr . '+' expr + 71 | expr . '*' expr + 72 | expr . '/' expr + 73 | expr . '%' expr + + "<<" shift, and go to state 56 + ">>" shift, and go to state 57 + '&' shift, and go to state 60 + '|' shift, and go to state 61 + '+' shift, and go to state 62 + '-' shift, and go to state 63 + '*' shift, and go to state 64 + '/' shift, and go to state 65 + '%' shift, and go to state 66 + + "==" error (nonassociative) + "!=" error (nonassociative) + ">=" error (nonassociative) + "<=" error (nonassociative) + '>' error (nonassociative) + '<' error (nonassociative) + + $default reduce using rule 63 (expr) + + Conflict between rule 63 and token "||" resolved as reduce ("||" < '<'). + Conflict between rule 63 and token "&&" resolved as reduce ("&&" < '<'). + Conflict between rule 63 and token "==" resolved as an error (%nonassoc "=="). + Conflict between rule 63 and token "!=" resolved as an error (%nonassoc "!="). + Conflict between rule 63 and token ">=" resolved as an error (%nonassoc ">="). + Conflict between rule 63 and token "<=" resolved as an error (%nonassoc "<="). + Conflict between rule 63 and token "<<" resolved as shift ('<' < "<<"). + Conflict between rule 63 and token ">>" resolved as shift ('<' < ">>"). + Conflict between rule 63 and token '>' resolved as an error (%nonassoc '>'). + Conflict between rule 63 and token '<' resolved as an error (%nonassoc '<'). + Conflict between rule 63 and token '&' resolved as shift ('<' < '&'). + Conflict between rule 63 and token '|' resolved as shift ('<' < '|'). + Conflict between rule 63 and token '+' resolved as shift ('<' < '+'). + Conflict between rule 63 and token '-' resolved as shift ('<' < '-'). + Conflict between rule 63 and token '*' resolved as shift ('<' < '*'). + Conflict between rule 63 and token '/' resolved as shift ('<' < '/'). + Conflict between rule 63 and token '%' resolved as shift ('<' < '%'). + + +state 92 + + 57 expr: expr . "&&" expr + 58 | expr . "||" expr + 59 | expr . "==" expr + 60 | expr . "!=" expr + 61 | expr . '>' expr + 62 | expr . ">=" expr + 63 | expr . '<' expr + 64 | expr . "<=" expr + 65 | expr . '&' expr ["||", "&&", "==", "!=", ">=", "<=", '>', '<', '&', '|', ';', ')', ',', ']', ':'] + 65 | expr '&' expr . ["||", "&&", "==", "!=", ">=", "<=", '>', '<', '&', '|', ';', ')', ',', ']', ':'] + 66 | expr . '|' expr + 67 | expr . "<<" expr + 68 | expr . ">>" expr + 69 | expr . '-' expr + 70 | expr . '+' expr + 71 | expr . '*' expr + 72 | expr . '/' expr + 73 | expr . '%' expr + + "<<" shift, and go to state 56 + ">>" shift, and go to state 57 + '+' shift, and go to state 62 + '-' shift, and go to state 63 + '*' shift, and go to state 64 + '/' shift, and go to state 65 + '%' shift, and go to state 66 + + $default reduce using rule 65 (expr) + + Conflict between rule 65 and token "||" resolved as reduce ("||" < '&'). + Conflict between rule 65 and token "&&" resolved as reduce ("&&" < '&'). + Conflict between rule 65 and token "==" resolved as reduce ("==" < '&'). + Conflict between rule 65 and token "!=" resolved as reduce ("!=" < '&'). + Conflict between rule 65 and token ">=" resolved as reduce (">=" < '&'). + Conflict between rule 65 and token "<=" resolved as reduce ("<=" < '&'). + Conflict between rule 65 and token "<<" resolved as shift ('&' < "<<"). + Conflict between rule 65 and token ">>" resolved as shift ('&' < ">>"). + Conflict between rule 65 and token '>' resolved as reduce ('>' < '&'). + Conflict between rule 65 and token '<' resolved as reduce ('<' < '&'). + Conflict between rule 65 and token '&' resolved as reduce (%left '&'). + Conflict between rule 65 and token '|' resolved as reduce (%left '|'). + Conflict between rule 65 and token '+' resolved as shift ('&' < '+'). + Conflict between rule 65 and token '-' resolved as shift ('&' < '-'). + Conflict between rule 65 and token '*' resolved as shift ('&' < '*'). + Conflict between rule 65 and token '/' resolved as shift ('&' < '/'). + Conflict between rule 65 and token '%' resolved as shift ('&' < '%'). + + +state 93 + + 57 expr: expr . "&&" expr + 58 | expr . "||" expr + 59 | expr . "==" expr + 60 | expr . "!=" expr + 61 | expr . '>' expr + 62 | expr . ">=" expr + 63 | expr . '<' expr + 64 | expr . "<=" expr + 65 | expr . '&' expr + 66 | expr . '|' expr ["||", "&&", "==", "!=", ">=", "<=", '>', '<', '&', '|', ';', ')', ',', ']', ':'] + 66 | expr '|' expr . ["||", "&&", "==", "!=", ">=", "<=", '>', '<', '&', '|', ';', ')', ',', ']', ':'] + 67 | expr . "<<" expr + 68 | expr . ">>" expr + 69 | expr . '-' expr + 70 | expr . '+' expr + 71 | expr . '*' expr + 72 | expr . '/' expr + 73 | expr . '%' expr + + "<<" shift, and go to state 56 + ">>" shift, and go to state 57 + '+' shift, and go to state 62 + '-' shift, and go to state 63 + '*' shift, and go to state 64 + '/' shift, and go to state 65 + '%' shift, and go to state 66 + + $default reduce using rule 66 (expr) + + Conflict between rule 66 and token "||" resolved as reduce ("||" < '|'). + Conflict between rule 66 and token "&&" resolved as reduce ("&&" < '|'). + Conflict between rule 66 and token "==" resolved as reduce ("==" < '|'). + Conflict between rule 66 and token "!=" resolved as reduce ("!=" < '|'). + Conflict between rule 66 and token ">=" resolved as reduce (">=" < '|'). + Conflict between rule 66 and token "<=" resolved as reduce ("<=" < '|'). + Conflict between rule 66 and token "<<" resolved as shift ('|' < "<<"). + Conflict between rule 66 and token ">>" resolved as shift ('|' < ">>"). + Conflict between rule 66 and token '>' resolved as reduce ('>' < '|'). + Conflict between rule 66 and token '<' resolved as reduce ('<' < '|'). + Conflict between rule 66 and token '&' resolved as reduce (%left '&'). + Conflict between rule 66 and token '|' resolved as reduce (%left '|'). + Conflict between rule 66 and token '+' resolved as shift ('|' < '+'). + Conflict between rule 66 and token '-' resolved as shift ('|' < '-'). + Conflict between rule 66 and token '*' resolved as shift ('|' < '*'). + Conflict between rule 66 and token '/' resolved as shift ('|' < '/'). + Conflict between rule 66 and token '%' resolved as shift ('|' < '%'). + + +state 94 + + 57 expr: expr . "&&" expr + 58 | expr . "||" expr + 59 | expr . "==" expr + 60 | expr . "!=" expr + 61 | expr . '>' expr + 62 | expr . ">=" expr + 63 | expr . '<' expr + 64 | expr . "<=" expr + 65 | expr . '&' expr + 66 | expr . '|' expr + 67 | expr . "<<" expr + 68 | expr . ">>" expr + 69 | expr . '-' expr + 70 | expr . '+' expr ["||", "&&", "==", "!=", ">=", "<=", "<<", ">>", '>', '<', '&', '|', '+', '-', ';', ')', ',', ']', ':'] + 70 | expr '+' expr . ["||", "&&", "==", "!=", ">=", "<=", "<<", ">>", '>', '<', '&', '|', '+', '-', ';', ')', ',', ']', ':'] + 71 | expr . '*' expr + 72 | expr . '/' expr + 73 | expr . '%' expr + + '*' shift, and go to state 64 + '/' shift, and go to state 65 + '%' shift, and go to state 66 + + $default reduce using rule 70 (expr) + + Conflict between rule 70 and token "||" resolved as reduce ("||" < '+'). + Conflict between rule 70 and token "&&" resolved as reduce ("&&" < '+'). + Conflict between rule 70 and token "==" resolved as reduce ("==" < '+'). + Conflict between rule 70 and token "!=" resolved as reduce ("!=" < '+'). + Conflict between rule 70 and token ">=" resolved as reduce (">=" < '+'). + Conflict between rule 70 and token "<=" resolved as reduce ("<=" < '+'). + Conflict between rule 70 and token "<<" resolved as reduce ("<<" < '+'). + Conflict between rule 70 and token ">>" resolved as reduce (">>" < '+'). + Conflict between rule 70 and token '>' resolved as reduce ('>' < '+'). + Conflict between rule 70 and token '<' resolved as reduce ('<' < '+'). + Conflict between rule 70 and token '&' resolved as reduce ('&' < '+'). + Conflict between rule 70 and token '|' resolved as reduce ('|' < '+'). + Conflict between rule 70 and token '+' resolved as reduce (%left '+'). + Conflict between rule 70 and token '-' resolved as reduce (%left '-'). + Conflict between rule 70 and token '*' resolved as shift ('+' < '*'). + Conflict between rule 70 and token '/' resolved as shift ('+' < '/'). + Conflict between rule 70 and token '%' resolved as shift ('+' < '%'). + + +state 95 + + 57 expr: expr . "&&" expr + 58 | expr . "||" expr + 59 | expr . "==" expr + 60 | expr . "!=" expr + 61 | expr . '>' expr + 62 | expr . ">=" expr + 63 | expr . '<' expr + 64 | expr . "<=" expr + 65 | expr . '&' expr + 66 | expr . '|' expr + 67 | expr . "<<" expr + 68 | expr . ">>" expr + 69 | expr . '-' expr ["||", "&&", "==", "!=", ">=", "<=", "<<", ">>", '>', '<', '&', '|', '+', '-', ';', ')', ',', ']', ':'] + 69 | expr '-' expr . ["||", "&&", "==", "!=", ">=", "<=", "<<", ">>", '>', '<', '&', '|', '+', '-', ';', ')', ',', ']', ':'] + 70 | expr . '+' expr + 71 | expr . '*' expr + 72 | expr . '/' expr + 73 | expr . '%' expr + + '*' shift, and go to state 64 + '/' shift, and go to state 65 + '%' shift, and go to state 66 + + $default reduce using rule 69 (expr) + + Conflict between rule 69 and token "||" resolved as reduce ("||" < '-'). + Conflict between rule 69 and token "&&" resolved as reduce ("&&" < '-'). + Conflict between rule 69 and token "==" resolved as reduce ("==" < '-'). + Conflict between rule 69 and token "!=" resolved as reduce ("!=" < '-'). + Conflict between rule 69 and token ">=" resolved as reduce (">=" < '-'). + Conflict between rule 69 and token "<=" resolved as reduce ("<=" < '-'). + Conflict between rule 69 and token "<<" resolved as reduce ("<<" < '-'). + Conflict between rule 69 and token ">>" resolved as reduce (">>" < '-'). + Conflict between rule 69 and token '>' resolved as reduce ('>' < '-'). + Conflict between rule 69 and token '<' resolved as reduce ('<' < '-'). + Conflict between rule 69 and token '&' resolved as reduce ('&' < '-'). + Conflict between rule 69 and token '|' resolved as reduce ('|' < '-'). + Conflict between rule 69 and token '+' resolved as reduce (%left '+'). + Conflict between rule 69 and token '-' resolved as reduce (%left '-'). + Conflict between rule 69 and token '*' resolved as shift ('-' < '*'). + Conflict between rule 69 and token '/' resolved as shift ('-' < '/'). + Conflict between rule 69 and token '%' resolved as shift ('-' < '%'). + + +state 96 + + 57 expr: expr . "&&" expr + 58 | expr . "||" expr + 59 | expr . "==" expr + 60 | expr . "!=" expr + 61 | expr . '>' expr + 62 | expr . ">=" expr + 63 | expr . '<' expr + 64 | expr . "<=" expr + 65 | expr . '&' expr + 66 | expr . '|' expr + 67 | expr . "<<" expr + 68 | expr . ">>" expr + 69 | expr . '-' expr + 70 | expr . '+' expr + 71 | expr . '*' expr ["||", "&&", "==", "!=", ">=", "<=", "<<", ">>", '>', '<', '&', '|', '+', '-', '*', '/', '%', ';', ')', ',', ']', ':'] + 71 | expr '*' expr . ["||", "&&", "==", "!=", ">=", "<=", "<<", ">>", '>', '<', '&', '|', '+', '-', '*', '/', '%', ';', ')', ',', ']', ':'] + 72 | expr . '/' expr + 73 | expr . '%' expr + + $default reduce using rule 71 (expr) + + Conflict between rule 71 and token "||" resolved as reduce ("||" < '*'). + Conflict between rule 71 and token "&&" resolved as reduce ("&&" < '*'). + Conflict between rule 71 and token "==" resolved as reduce ("==" < '*'). + Conflict between rule 71 and token "!=" resolved as reduce ("!=" < '*'). + Conflict between rule 71 and token ">=" resolved as reduce (">=" < '*'). + Conflict between rule 71 and token "<=" resolved as reduce ("<=" < '*'). + Conflict between rule 71 and token "<<" resolved as reduce ("<<" < '*'). + Conflict between rule 71 and token ">>" resolved as reduce (">>" < '*'). + Conflict between rule 71 and token '>' resolved as reduce ('>' < '*'). + Conflict between rule 71 and token '<' resolved as reduce ('<' < '*'). + Conflict between rule 71 and token '&' resolved as reduce ('&' < '*'). + Conflict between rule 71 and token '|' resolved as reduce ('|' < '*'). + Conflict between rule 71 and token '+' resolved as reduce ('+' < '*'). + Conflict between rule 71 and token '-' resolved as reduce ('-' < '*'). + Conflict between rule 71 and token '*' resolved as reduce (%left '*'). + Conflict between rule 71 and token '/' resolved as reduce (%left '/'). + Conflict between rule 71 and token '%' resolved as reduce (%left '%'). + + +state 97 + + 57 expr: expr . "&&" expr + 58 | expr . "||" expr + 59 | expr . "==" expr + 60 | expr . "!=" expr + 61 | expr . '>' expr + 62 | expr . ">=" expr + 63 | expr . '<' expr + 64 | expr . "<=" expr + 65 | expr . '&' expr + 66 | expr . '|' expr + 67 | expr . "<<" expr + 68 | expr . ">>" expr + 69 | expr . '-' expr + 70 | expr . '+' expr + 71 | expr . '*' expr + 72 | expr . '/' expr ["||", "&&", "==", "!=", ">=", "<=", "<<", ">>", '>', '<', '&', '|', '+', '-', '*', '/', '%', ';', ')', ',', ']', ':'] + 72 | expr '/' expr . ["||", "&&", "==", "!=", ">=", "<=", "<<", ">>", '>', '<', '&', '|', '+', '-', '*', '/', '%', ';', ')', ',', ']', ':'] + 73 | expr . '%' expr + + $default reduce using rule 72 (expr) + + Conflict between rule 72 and token "||" resolved as reduce ("||" < '/'). + Conflict between rule 72 and token "&&" resolved as reduce ("&&" < '/'). + Conflict between rule 72 and token "==" resolved as reduce ("==" < '/'). + Conflict between rule 72 and token "!=" resolved as reduce ("!=" < '/'). + Conflict between rule 72 and token ">=" resolved as reduce (">=" < '/'). + Conflict between rule 72 and token "<=" resolved as reduce ("<=" < '/'). + Conflict between rule 72 and token "<<" resolved as reduce ("<<" < '/'). + Conflict between rule 72 and token ">>" resolved as reduce (">>" < '/'). + Conflict between rule 72 and token '>' resolved as reduce ('>' < '/'). + Conflict between rule 72 and token '<' resolved as reduce ('<' < '/'). + Conflict between rule 72 and token '&' resolved as reduce ('&' < '/'). + Conflict between rule 72 and token '|' resolved as reduce ('|' < '/'). + Conflict between rule 72 and token '+' resolved as reduce ('+' < '/'). + Conflict between rule 72 and token '-' resolved as reduce ('-' < '/'). + Conflict between rule 72 and token '*' resolved as reduce (%left '*'). + Conflict between rule 72 and token '/' resolved as reduce (%left '/'). + Conflict between rule 72 and token '%' resolved as reduce (%left '%'). + + +state 98 + + 57 expr: expr . "&&" expr + 58 | expr . "||" expr + 59 | expr . "==" expr + 60 | expr . "!=" expr + 61 | expr . '>' expr + 62 | expr . ">=" expr + 63 | expr . '<' expr + 64 | expr . "<=" expr + 65 | expr . '&' expr + 66 | expr . '|' expr + 67 | expr . "<<" expr + 68 | expr . ">>" expr + 69 | expr . '-' expr + 70 | expr . '+' expr + 71 | expr . '*' expr + 72 | expr . '/' expr + 73 | expr . '%' expr ["||", "&&", "==", "!=", ">=", "<=", "<<", ">>", '>', '<', '&', '|', '+', '-', '*', '/', '%', ';', ')', ',', ']', ':'] + 73 | expr '%' expr . ["||", "&&", "==", "!=", ">=", "<=", "<<", ">>", '>', '<', '&', '|', '+', '-', '*', '/', '%', ';', ')', ',', ']', ':'] + + $default reduce using rule 73 (expr) + + Conflict between rule 73 and token "||" resolved as reduce ("||" < '%'). + Conflict between rule 73 and token "&&" resolved as reduce ("&&" < '%'). + Conflict between rule 73 and token "==" resolved as reduce ("==" < '%'). + Conflict between rule 73 and token "!=" resolved as reduce ("!=" < '%'). + Conflict between rule 73 and token ">=" resolved as reduce (">=" < '%'). + Conflict between rule 73 and token "<=" resolved as reduce ("<=" < '%'). + Conflict between rule 73 and token "<<" resolved as reduce ("<<" < '%'). + Conflict between rule 73 and token ">>" resolved as reduce (">>" < '%'). + Conflict between rule 73 and token '>' resolved as reduce ('>' < '%'). + Conflict between rule 73 and token '<' resolved as reduce ('<' < '%'). + Conflict between rule 73 and token '&' resolved as reduce ('&' < '%'). + Conflict between rule 73 and token '|' resolved as reduce ('|' < '%'). + Conflict between rule 73 and token '+' resolved as reduce ('+' < '%'). + Conflict between rule 73 and token '-' resolved as reduce ('-' < '%'). + Conflict between rule 73 and token '*' resolved as reduce (%left '*'). + Conflict between rule 73 and token '/' resolved as reduce (%left '/'). + Conflict between rule 73 and token '%' resolved as reduce (%left '%'). + + +state 99 + + 12 value_list: value_list . ',' value + 32 decls: type value_list . ';' + + ';' shift, and go to state 121 + ',' shift, and go to state 21 + + +state 100 + + 38 statement: "identifier" . '(' args ')' ';' + 39 | "identifier" . '(' ')' ';' + 81 value: "identifier" . ["+=", "-=", "*=", "/=", "%=", '='] + 82 | "identifier" . '[' expr ']' + + '(' shift, and go to state 122 + '[' shift, and go to state 19 + + $default reduce using rule 81 (value) + + +state 101 + + 45 statement: "if" . '(' expr ')' statement + 46 | "if" . '(' expr ')' statement "else" statement + + '(' shift, and go to state 123 + + +state 102 + + 48 statement: "while" . '(' expr ')' statement + + '(' shift, and go to state 124 + + +state 103 + + 47 statement: "for" . '(' assign ';' expr ';' assign ')' statement + + '(' shift, and go to state 125 + + +state 104 + + 49 statement: "switch" . '(' expr ')' '{' state_list '}' + + '(' shift, and go to state 126 + + +state 105 + + 40 statement: "case" . expr ':' + 57 expr: . expr "&&" expr + 58 | . expr "||" expr + 59 | . expr "==" expr + 60 | . expr "!=" expr + 61 | . expr '>' expr + 62 | . expr ">=" expr + 63 | . expr '<' expr + 64 | . expr "<=" expr + 65 | . expr '&' expr + 66 | . expr '|' expr + 67 | . expr "<<" expr + 68 | . expr ">>" expr + 69 | . expr '-' expr + 70 | . expr '+' expr + 71 | . expr '*' expr + 72 | . expr '/' expr + 73 | . expr '%' expr + 74 | . '-' expr + 75 | . '(' expr ')' + 76 | . value + 77 | . "ival" + 78 | . "sval" + 79 | . "identifier" '(' args ')' + 80 | . "identifier" '(' ')' + 81 value: . "identifier" + 82 | . "identifier" '[' expr ']' + + "ival" shift, and go to state 28 + "identifier" shift, and go to state 29 + "sval" shift, and go to state 30 + '-' shift, and go to state 31 + '(' shift, and go to state 32 + + expr go to state 127 + value go to state 34 + + +state 106 + + 41 statement: "default" . ':' + + ':' shift, and go to state 128 + + +state 107 + + 42 statement: "break" . ';' + + ';' shift, and go to state 129 + + +state 108 + + 43 statement: "return" . ';' + 44 | "return" . expr ';' + 57 expr: . expr "&&" expr + 58 | . expr "||" expr + 59 | . expr "==" expr + 60 | . expr "!=" expr + 61 | . expr '>' expr + 62 | . expr ">=" expr + 63 | . expr '<' expr + 64 | . expr "<=" expr + 65 | . expr '&' expr + 66 | . expr '|' expr + 67 | . expr "<<" expr + 68 | . expr ">>" expr + 69 | . expr '-' expr + 70 | . expr '+' expr + 71 | . expr '*' expr + 72 | . expr '/' expr + 73 | . expr '%' expr + 74 | . '-' expr + 75 | . '(' expr ')' + 76 | . value + 77 | . "ival" + 78 | . "sval" + 79 | . "identifier" '(' args ')' + 80 | . "identifier" '(' ')' + 81 value: . "identifier" + 82 | . "identifier" '[' expr ']' + + "ival" shift, and go to state 28 + "identifier" shift, and go to state 29 + "sval" shift, and go to state 30 + '-' shift, and go to state 31 + ';' shift, and go to state 130 + '(' shift, and go to state 32 + + expr go to state 131 + value go to state 34 + + +state 109 + + 36 statement: ';' . + + $default reduce using rule 36 (statement) + + +state 110 + + 50 statement: block . + + $default reduce using rule 50 (statement) + + +state 111 + + 27 block: '{' decl_list state_list . '}' + + '}' shift, and go to state 132 + + +state 112 + + 27 block: . '{' decl_list state_list '}' + 31 state_list: states . ['}'] + 35 states: states . statement + 36 statement: . ';' + 37 | . assign ';' + 38 | . "identifier" '(' args ')' ';' + 39 | . "identifier" '(' ')' ';' + 40 | . "case" expr ':' + 41 | . "default" ':' + 42 | . "break" ';' + 43 | . "return" ';' + 44 | . "return" expr ';' + 45 | . "if" '(' expr ')' statement + 46 | . "if" '(' expr ')' statement "else" statement + 47 | . "for" '(' assign ';' expr ';' assign ')' statement + 48 | . "while" '(' expr ')' statement + 49 | . "switch" '(' expr ')' '{' state_list '}' + 50 | . block + 51 assign: . value '=' expr + 52 | . value "+=" expr + 53 | . value "-=" expr + 54 | . value "*=" expr + 55 | . value "/=" expr + 56 | . value "%=" expr + 81 value: . "identifier" + 82 | . "identifier" '[' expr ']' + + "identifier" shift, and go to state 100 + "if" shift, and go to state 101 + "while" shift, and go to state 102 + "for" shift, and go to state 103 + "switch" shift, and go to state 104 + "case" shift, and go to state 105 + "default" shift, and go to state 106 + "break" shift, and go to state 107 + "return" shift, and go to state 108 + ';' shift, and go to state 109 + '{' shift, and go to state 38 + + $default reduce using rule 31 (state_list) + + block go to state 110 + statement go to state 133 + assign go to state 114 + value go to state 115 + + +state 113 + + 34 states: statement . + + $default reduce using rule 34 (states) + + +state 114 + + 37 statement: assign . ';' + + ';' shift, and go to state 134 + + +state 115 + + 51 assign: value . '=' expr + 52 | value . "+=" expr + 53 | value . "-=" expr + 54 | value . "*=" expr + 55 | value . "/=" expr + 56 | value . "%=" expr + + "+=" shift, and go to state 135 + "-=" shift, and go to state 136 + "*=" shift, and go to state 137 + "/=" shift, and go to state 138 + "%=" shift, and go to state 139 + '=' shift, and go to state 140 + + +state 116 + + 11 value_list: . value + 12 | . value_list ',' value + 33 decls: decls type . value_list ';' + 81 value: . "identifier" + 82 | . "identifier" '[' expr ']' + + "identifier" shift, and go to state 35 + + value_list go to state 141 + value go to state 16 + + +state 117 + + 19 arg: type "identifier" '[' ']' . + + $default reduce using rule 19 (arg) + + +state 118 + + 20 arg: type '&' "identifier" '[' . ']' + + ']' shift, and go to state 142 + + +state 119 + + 79 expr: "identifier" '(' args ')' . + + $default reduce using rule 79 (expr) + + +state 120 + + 57 expr: . expr "&&" expr + 58 | . expr "||" expr + 59 | . expr "==" expr + 60 | . expr "!=" expr + 61 | . expr '>' expr + 62 | . expr ">=" expr + 63 | . expr '<' expr + 64 | . expr "<=" expr + 65 | . expr '&' expr + 66 | . expr '|' expr + 67 | . expr "<<" expr + 68 | . expr ">>" expr + 69 | . expr '-' expr + 70 | . expr '+' expr + 71 | . expr '*' expr + 72 | . expr '/' expr + 73 | . expr '%' expr + 74 | . '-' expr + 75 | . '(' expr ')' + 76 | . value + 77 | . "ival" + 78 | . "sval" + 79 | . "identifier" '(' args ')' + 80 | . "identifier" '(' ')' + 81 value: . "identifier" + 82 | . "identifier" '[' expr ']' + 84 args: args ',' . expr + + "ival" shift, and go to state 28 + "identifier" shift, and go to state 29 + "sval" shift, and go to state 30 + '-' shift, and go to state 31 + '(' shift, and go to state 32 + + expr go to state 143 + value go to state 34 + + +state 121 + + 32 decls: type value_list ';' . + + $default reduce using rule 32 (decls) + + +state 122 + + 38 statement: "identifier" '(' . args ')' ';' + 39 | "identifier" '(' . ')' ';' + 57 expr: . expr "&&" expr + 58 | . expr "||" expr + 59 | . expr "==" expr + 60 | . expr "!=" expr + 61 | . expr '>' expr + 62 | . expr ">=" expr + 63 | . expr '<' expr + 64 | . expr "<=" expr + 65 | . expr '&' expr + 66 | . expr '|' expr + 67 | . expr "<<" expr + 68 | . expr ">>" expr + 69 | . expr '-' expr + 70 | . expr '+' expr + 71 | . expr '*' expr + 72 | . expr '/' expr + 73 | . expr '%' expr + 74 | . '-' expr + 75 | . '(' expr ')' + 76 | . value + 77 | . "ival" + 78 | . "sval" + 79 | . "identifier" '(' args ')' + 80 | . "identifier" '(' ')' + 81 value: . "identifier" + 82 | . "identifier" '[' expr ']' + 83 args: . expr + 84 | . args ',' expr + + "ival" shift, and go to state 28 + "identifier" shift, and go to state 29 + "sval" shift, and go to state 30 + '-' shift, and go to state 31 + '(' shift, and go to state 32 + ')' shift, and go to state 144 + + expr go to state 79 + value go to state 34 + args go to state 145 + + +state 123 + + 45 statement: "if" '(' . expr ')' statement + 46 | "if" '(' . expr ')' statement "else" statement + 57 expr: . expr "&&" expr + 58 | . expr "||" expr + 59 | . expr "==" expr + 60 | . expr "!=" expr + 61 | . expr '>' expr + 62 | . expr ">=" expr + 63 | . expr '<' expr + 64 | . expr "<=" expr + 65 | . expr '&' expr + 66 | . expr '|' expr + 67 | . expr "<<" expr + 68 | . expr ">>" expr + 69 | . expr '-' expr + 70 | . expr '+' expr + 71 | . expr '*' expr + 72 | . expr '/' expr + 73 | . expr '%' expr + 74 | . '-' expr + 75 | . '(' expr ')' + 76 | . value + 77 | . "ival" + 78 | . "sval" + 79 | . "identifier" '(' args ')' + 80 | . "identifier" '(' ')' + 81 value: . "identifier" + 82 | . "identifier" '[' expr ']' + + "ival" shift, and go to state 28 + "identifier" shift, and go to state 29 + "sval" shift, and go to state 30 + '-' shift, and go to state 31 + '(' shift, and go to state 32 + + expr go to state 146 + value go to state 34 + + +state 124 + + 48 statement: "while" '(' . expr ')' statement + 57 expr: . expr "&&" expr + 58 | . expr "||" expr + 59 | . expr "==" expr + 60 | . expr "!=" expr + 61 | . expr '>' expr + 62 | . expr ">=" expr + 63 | . expr '<' expr + 64 | . expr "<=" expr + 65 | . expr '&' expr + 66 | . expr '|' expr + 67 | . expr "<<" expr + 68 | . expr ">>" expr + 69 | . expr '-' expr + 70 | . expr '+' expr + 71 | . expr '*' expr + 72 | . expr '/' expr + 73 | . expr '%' expr + 74 | . '-' expr + 75 | . '(' expr ')' + 76 | . value + 77 | . "ival" + 78 | . "sval" + 79 | . "identifier" '(' args ')' + 80 | . "identifier" '(' ')' + 81 value: . "identifier" + 82 | . "identifier" '[' expr ']' + + "ival" shift, and go to state 28 + "identifier" shift, and go to state 29 + "sval" shift, and go to state 30 + '-' shift, and go to state 31 + '(' shift, and go to state 32 + + expr go to state 147 + value go to state 34 + + +state 125 + + 47 statement: "for" '(' . assign ';' expr ';' assign ')' statement + 51 assign: . value '=' expr + 52 | . value "+=" expr + 53 | . value "-=" expr + 54 | . value "*=" expr + 55 | . value "/=" expr + 56 | . value "%=" expr + 81 value: . "identifier" + 82 | . "identifier" '[' expr ']' + + "identifier" shift, and go to state 35 + + assign go to state 148 + value go to state 115 + + +state 126 + + 49 statement: "switch" '(' . expr ')' '{' state_list '}' + 57 expr: . expr "&&" expr + 58 | . expr "||" expr + 59 | . expr "==" expr + 60 | . expr "!=" expr + 61 | . expr '>' expr + 62 | . expr ">=" expr + 63 | . expr '<' expr + 64 | . expr "<=" expr + 65 | . expr '&' expr + 66 | . expr '|' expr + 67 | . expr "<<" expr + 68 | . expr ">>" expr + 69 | . expr '-' expr + 70 | . expr '+' expr + 71 | . expr '*' expr + 72 | . expr '/' expr + 73 | . expr '%' expr + 74 | . '-' expr + 75 | . '(' expr ')' + 76 | . value + 77 | . "ival" + 78 | . "sval" + 79 | . "identifier" '(' args ')' + 80 | . "identifier" '(' ')' + 81 value: . "identifier" + 82 | . "identifier" '[' expr ']' + + "ival" shift, and go to state 28 + "identifier" shift, and go to state 29 + "sval" shift, and go to state 30 + '-' shift, and go to state 31 + '(' shift, and go to state 32 + + expr go to state 149 + value go to state 34 + + +state 127 + + 40 statement: "case" expr . ':' + 57 expr: expr . "&&" expr + 58 | expr . "||" expr + 59 | expr . "==" expr + 60 | expr . "!=" expr + 61 | expr . '>' expr + 62 | expr . ">=" expr + 63 | expr . '<' expr + 64 | expr . "<=" expr + 65 | expr . '&' expr + 66 | expr . '|' expr + 67 | expr . "<<" expr + 68 | expr . ">>" expr + 69 | expr . '-' expr + 70 | expr . '+' expr + 71 | expr . '*' expr + 72 | expr . '/' expr + 73 | expr . '%' expr + + "||" shift, and go to state 50 + "&&" shift, and go to state 51 + "==" shift, and go to state 52 + "!=" shift, and go to state 53 + ">=" shift, and go to state 54 + "<=" shift, and go to state 55 + "<<" shift, and go to state 56 + ">>" shift, and go to state 57 + '>' shift, and go to state 58 + '<' shift, and go to state 59 + '&' shift, and go to state 60 + '|' shift, and go to state 61 + '+' shift, and go to state 62 + '-' shift, and go to state 63 + '*' shift, and go to state 64 + '/' shift, and go to state 65 + '%' shift, and go to state 66 + ':' shift, and go to state 150 + + +state 128 + + 41 statement: "default" ':' . + + $default reduce using rule 41 (statement) + + +state 129 + + 42 statement: "break" ';' . + + $default reduce using rule 42 (statement) + + +state 130 + + 43 statement: "return" ';' . + + $default reduce using rule 43 (statement) + + +state 131 + + 44 statement: "return" expr . ';' + 57 expr: expr . "&&" expr + 58 | expr . "||" expr + 59 | expr . "==" expr + 60 | expr . "!=" expr + 61 | expr . '>' expr + 62 | expr . ">=" expr + 63 | expr . '<' expr + 64 | expr . "<=" expr + 65 | expr . '&' expr + 66 | expr . '|' expr + 67 | expr . "<<" expr + 68 | expr . ">>" expr + 69 | expr . '-' expr + 70 | expr . '+' expr + 71 | expr . '*' expr + 72 | expr . '/' expr + 73 | expr . '%' expr + + "||" shift, and go to state 50 + "&&" shift, and go to state 51 + "==" shift, and go to state 52 + "!=" shift, and go to state 53 + ">=" shift, and go to state 54 + "<=" shift, and go to state 55 + "<<" shift, and go to state 56 + ">>" shift, and go to state 57 + '>' shift, and go to state 58 + '<' shift, and go to state 59 + '&' shift, and go to state 60 + '|' shift, and go to state 61 + '+' shift, and go to state 62 + '-' shift, and go to state 63 + '*' shift, and go to state 64 + '/' shift, and go to state 65 + '%' shift, and go to state 66 + ';' shift, and go to state 151 + + +state 132 + + 27 block: '{' decl_list state_list '}' . + + $default reduce using rule 27 (block) + + +state 133 + + 35 states: states statement . + + $default reduce using rule 35 (states) + + +state 134 + + 37 statement: assign ';' . + + $default reduce using rule 37 (statement) + + +state 135 + + 52 assign: value "+=" . expr + 57 expr: . expr "&&" expr + 58 | . expr "||" expr + 59 | . expr "==" expr + 60 | . expr "!=" expr + 61 | . expr '>' expr + 62 | . expr ">=" expr + 63 | . expr '<' expr + 64 | . expr "<=" expr + 65 | . expr '&' expr + 66 | . expr '|' expr + 67 | . expr "<<" expr + 68 | . expr ">>" expr + 69 | . expr '-' expr + 70 | . expr '+' expr + 71 | . expr '*' expr + 72 | . expr '/' expr + 73 | . expr '%' expr + 74 | . '-' expr + 75 | . '(' expr ')' + 76 | . value + 77 | . "ival" + 78 | . "sval" + 79 | . "identifier" '(' args ')' + 80 | . "identifier" '(' ')' + 81 value: . "identifier" + 82 | . "identifier" '[' expr ']' + + "ival" shift, and go to state 28 + "identifier" shift, and go to state 29 + "sval" shift, and go to state 30 + '-' shift, and go to state 31 + '(' shift, and go to state 32 + + expr go to state 152 + value go to state 34 + + +state 136 + + 53 assign: value "-=" . expr + 57 expr: . expr "&&" expr + 58 | . expr "||" expr + 59 | . expr "==" expr + 60 | . expr "!=" expr + 61 | . expr '>' expr + 62 | . expr ">=" expr + 63 | . expr '<' expr + 64 | . expr "<=" expr + 65 | . expr '&' expr + 66 | . expr '|' expr + 67 | . expr "<<" expr + 68 | . expr ">>" expr + 69 | . expr '-' expr + 70 | . expr '+' expr + 71 | . expr '*' expr + 72 | . expr '/' expr + 73 | . expr '%' expr + 74 | . '-' expr + 75 | . '(' expr ')' + 76 | . value + 77 | . "ival" + 78 | . "sval" + 79 | . "identifier" '(' args ')' + 80 | . "identifier" '(' ')' + 81 value: . "identifier" + 82 | . "identifier" '[' expr ']' + + "ival" shift, and go to state 28 + "identifier" shift, and go to state 29 + "sval" shift, and go to state 30 + '-' shift, and go to state 31 + '(' shift, and go to state 32 + + expr go to state 153 + value go to state 34 + + +state 137 + + 54 assign: value "*=" . expr + 57 expr: . expr "&&" expr + 58 | . expr "||" expr + 59 | . expr "==" expr + 60 | . expr "!=" expr + 61 | . expr '>' expr + 62 | . expr ">=" expr + 63 | . expr '<' expr + 64 | . expr "<=" expr + 65 | . expr '&' expr + 66 | . expr '|' expr + 67 | . expr "<<" expr + 68 | . expr ">>" expr + 69 | . expr '-' expr + 70 | . expr '+' expr + 71 | . expr '*' expr + 72 | . expr '/' expr + 73 | . expr '%' expr + 74 | . '-' expr + 75 | . '(' expr ')' + 76 | . value + 77 | . "ival" + 78 | . "sval" + 79 | . "identifier" '(' args ')' + 80 | . "identifier" '(' ')' + 81 value: . "identifier" + 82 | . "identifier" '[' expr ']' + + "ival" shift, and go to state 28 + "identifier" shift, and go to state 29 + "sval" shift, and go to state 30 + '-' shift, and go to state 31 + '(' shift, and go to state 32 + + expr go to state 154 + value go to state 34 + + +state 138 + + 55 assign: value "/=" . expr + 57 expr: . expr "&&" expr + 58 | . expr "||" expr + 59 | . expr "==" expr + 60 | . expr "!=" expr + 61 | . expr '>' expr + 62 | . expr ">=" expr + 63 | . expr '<' expr + 64 | . expr "<=" expr + 65 | . expr '&' expr + 66 | . expr '|' expr + 67 | . expr "<<" expr + 68 | . expr ">>" expr + 69 | . expr '-' expr + 70 | . expr '+' expr + 71 | . expr '*' expr + 72 | . expr '/' expr + 73 | . expr '%' expr + 74 | . '-' expr + 75 | . '(' expr ')' + 76 | . value + 77 | . "ival" + 78 | . "sval" + 79 | . "identifier" '(' args ')' + 80 | . "identifier" '(' ')' + 81 value: . "identifier" + 82 | . "identifier" '[' expr ']' + + "ival" shift, and go to state 28 + "identifier" shift, and go to state 29 + "sval" shift, and go to state 30 + '-' shift, and go to state 31 + '(' shift, and go to state 32 + + expr go to state 155 + value go to state 34 + + +state 139 + + 56 assign: value "%=" . expr + 57 expr: . expr "&&" expr + 58 | . expr "||" expr + 59 | . expr "==" expr + 60 | . expr "!=" expr + 61 | . expr '>' expr + 62 | . expr ">=" expr + 63 | . expr '<' expr + 64 | . expr "<=" expr + 65 | . expr '&' expr + 66 | . expr '|' expr + 67 | . expr "<<" expr + 68 | . expr ">>" expr + 69 | . expr '-' expr + 70 | . expr '+' expr + 71 | . expr '*' expr + 72 | . expr '/' expr + 73 | . expr '%' expr + 74 | . '-' expr + 75 | . '(' expr ')' + 76 | . value + 77 | . "ival" + 78 | . "sval" + 79 | . "identifier" '(' args ')' + 80 | . "identifier" '(' ')' + 81 value: . "identifier" + 82 | . "identifier" '[' expr ']' + + "ival" shift, and go to state 28 + "identifier" shift, and go to state 29 + "sval" shift, and go to state 30 + '-' shift, and go to state 31 + '(' shift, and go to state 32 + + expr go to state 156 + value go to state 34 + + +state 140 + + 51 assign: value '=' . expr + 57 expr: . expr "&&" expr + 58 | . expr "||" expr + 59 | . expr "==" expr + 60 | . expr "!=" expr + 61 | . expr '>' expr + 62 | . expr ">=" expr + 63 | . expr '<' expr + 64 | . expr "<=" expr + 65 | . expr '&' expr + 66 | . expr '|' expr + 67 | . expr "<<" expr + 68 | . expr ">>" expr + 69 | . expr '-' expr + 70 | . expr '+' expr + 71 | . expr '*' expr + 72 | . expr '/' expr + 73 | . expr '%' expr + 74 | . '-' expr + 75 | . '(' expr ')' + 76 | . value + 77 | . "ival" + 78 | . "sval" + 79 | . "identifier" '(' args ')' + 80 | . "identifier" '(' ')' + 81 value: . "identifier" + 82 | . "identifier" '[' expr ']' + + "ival" shift, and go to state 28 + "identifier" shift, and go to state 29 + "sval" shift, and go to state 30 + '-' shift, and go to state 31 + '(' shift, and go to state 32 + + expr go to state 157 + value go to state 34 + + +state 141 + + 12 value_list: value_list . ',' value + 33 decls: decls type value_list . ';' + + ';' shift, and go to state 158 + ',' shift, and go to state 21 + + +state 142 + + 20 arg: type '&' "identifier" '[' ']' . + + $default reduce using rule 20 (arg) + + +state 143 + + 57 expr: expr . "&&" expr + 58 | expr . "||" expr + 59 | expr . "==" expr + 60 | expr . "!=" expr + 61 | expr . '>' expr + 62 | expr . ">=" expr + 63 | expr . '<' expr + 64 | expr . "<=" expr + 65 | expr . '&' expr + 66 | expr . '|' expr + 67 | expr . "<<" expr + 68 | expr . ">>" expr + 69 | expr . '-' expr + 70 | expr . '+' expr + 71 | expr . '*' expr + 72 | expr . '/' expr + 73 | expr . '%' expr + 84 args: args ',' expr . [')', ','] + + "||" shift, and go to state 50 + "&&" shift, and go to state 51 + "==" shift, and go to state 52 + "!=" shift, and go to state 53 + ">=" shift, and go to state 54 + "<=" shift, and go to state 55 + "<<" shift, and go to state 56 + ">>" shift, and go to state 57 + '>' shift, and go to state 58 + '<' shift, and go to state 59 + '&' shift, and go to state 60 + '|' shift, and go to state 61 + '+' shift, and go to state 62 + '-' shift, and go to state 63 + '*' shift, and go to state 64 + '/' shift, and go to state 65 + '%' shift, and go to state 66 + + $default reduce using rule 84 (args) + + +state 144 + + 39 statement: "identifier" '(' ')' . ';' + + ';' shift, and go to state 159 + + +state 145 + + 38 statement: "identifier" '(' args . ')' ';' + 84 args: args . ',' expr + + ')' shift, and go to state 160 + ',' shift, and go to state 120 + + +state 146 + + 45 statement: "if" '(' expr . ')' statement + 46 | "if" '(' expr . ')' statement "else" statement + 57 expr: expr . "&&" expr + 58 | expr . "||" expr + 59 | expr . "==" expr + 60 | expr . "!=" expr + 61 | expr . '>' expr + 62 | expr . ">=" expr + 63 | expr . '<' expr + 64 | expr . "<=" expr + 65 | expr . '&' expr + 66 | expr . '|' expr + 67 | expr . "<<" expr + 68 | expr . ">>" expr + 69 | expr . '-' expr + 70 | expr . '+' expr + 71 | expr . '*' expr + 72 | expr . '/' expr + 73 | expr . '%' expr + + "||" shift, and go to state 50 + "&&" shift, and go to state 51 + "==" shift, and go to state 52 + "!=" shift, and go to state 53 + ">=" shift, and go to state 54 + "<=" shift, and go to state 55 + "<<" shift, and go to state 56 + ">>" shift, and go to state 57 + '>' shift, and go to state 58 + '<' shift, and go to state 59 + '&' shift, and go to state 60 + '|' shift, and go to state 61 + '+' shift, and go to state 62 + '-' shift, and go to state 63 + '*' shift, and go to state 64 + '/' shift, and go to state 65 + '%' shift, and go to state 66 + ')' shift, and go to state 161 + + +state 147 + + 48 statement: "while" '(' expr . ')' statement + 57 expr: expr . "&&" expr + 58 | expr . "||" expr + 59 | expr . "==" expr + 60 | expr . "!=" expr + 61 | expr . '>' expr + 62 | expr . ">=" expr + 63 | expr . '<' expr + 64 | expr . "<=" expr + 65 | expr . '&' expr + 66 | expr . '|' expr + 67 | expr . "<<" expr + 68 | expr . ">>" expr + 69 | expr . '-' expr + 70 | expr . '+' expr + 71 | expr . '*' expr + 72 | expr . '/' expr + 73 | expr . '%' expr + + "||" shift, and go to state 50 + "&&" shift, and go to state 51 + "==" shift, and go to state 52 + "!=" shift, and go to state 53 + ">=" shift, and go to state 54 + "<=" shift, and go to state 55 + "<<" shift, and go to state 56 + ">>" shift, and go to state 57 + '>' shift, and go to state 58 + '<' shift, and go to state 59 + '&' shift, and go to state 60 + '|' shift, and go to state 61 + '+' shift, and go to state 62 + '-' shift, and go to state 63 + '*' shift, and go to state 64 + '/' shift, and go to state 65 + '%' shift, and go to state 66 + ')' shift, and go to state 162 + + +state 148 + + 47 statement: "for" '(' assign . ';' expr ';' assign ')' statement + + ';' shift, and go to state 163 + + +state 149 + + 49 statement: "switch" '(' expr . ')' '{' state_list '}' + 57 expr: expr . "&&" expr + 58 | expr . "||" expr + 59 | expr . "==" expr + 60 | expr . "!=" expr + 61 | expr . '>' expr + 62 | expr . ">=" expr + 63 | expr . '<' expr + 64 | expr . "<=" expr + 65 | expr . '&' expr + 66 | expr . '|' expr + 67 | expr . "<<" expr + 68 | expr . ">>" expr + 69 | expr . '-' expr + 70 | expr . '+' expr + 71 | expr . '*' expr + 72 | expr . '/' expr + 73 | expr . '%' expr + + "||" shift, and go to state 50 + "&&" shift, and go to state 51 + "==" shift, and go to state 52 + "!=" shift, and go to state 53 + ">=" shift, and go to state 54 + "<=" shift, and go to state 55 + "<<" shift, and go to state 56 + ">>" shift, and go to state 57 + '>' shift, and go to state 58 + '<' shift, and go to state 59 + '&' shift, and go to state 60 + '|' shift, and go to state 61 + '+' shift, and go to state 62 + '-' shift, and go to state 63 + '*' shift, and go to state 64 + '/' shift, and go to state 65 + '%' shift, and go to state 66 + ')' shift, and go to state 164 + + +state 150 + + 40 statement: "case" expr ':' . + + $default reduce using rule 40 (statement) + + +state 151 + + 44 statement: "return" expr ';' . + + $default reduce using rule 44 (statement) + + +state 152 + + 52 assign: value "+=" expr . [';', ')'] + 57 expr: expr . "&&" expr + 58 | expr . "||" expr + 59 | expr . "==" expr + 60 | expr . "!=" expr + 61 | expr . '>' expr + 62 | expr . ">=" expr + 63 | expr . '<' expr + 64 | expr . "<=" expr + 65 | expr . '&' expr + 66 | expr . '|' expr + 67 | expr . "<<" expr + 68 | expr . ">>" expr + 69 | expr . '-' expr + 70 | expr . '+' expr + 71 | expr . '*' expr + 72 | expr . '/' expr + 73 | expr . '%' expr + + "||" shift, and go to state 50 + "&&" shift, and go to state 51 + "==" shift, and go to state 52 + "!=" shift, and go to state 53 + ">=" shift, and go to state 54 + "<=" shift, and go to state 55 + "<<" shift, and go to state 56 + ">>" shift, and go to state 57 + '>' shift, and go to state 58 + '<' shift, and go to state 59 + '&' shift, and go to state 60 + '|' shift, and go to state 61 + '+' shift, and go to state 62 + '-' shift, and go to state 63 + '*' shift, and go to state 64 + '/' shift, and go to state 65 + '%' shift, and go to state 66 + + $default reduce using rule 52 (assign) + + +state 153 + + 53 assign: value "-=" expr . [';', ')'] + 57 expr: expr . "&&" expr + 58 | expr . "||" expr + 59 | expr . "==" expr + 60 | expr . "!=" expr + 61 | expr . '>' expr + 62 | expr . ">=" expr + 63 | expr . '<' expr + 64 | expr . "<=" expr + 65 | expr . '&' expr + 66 | expr . '|' expr + 67 | expr . "<<" expr + 68 | expr . ">>" expr + 69 | expr . '-' expr + 70 | expr . '+' expr + 71 | expr . '*' expr + 72 | expr . '/' expr + 73 | expr . '%' expr + + "||" shift, and go to state 50 + "&&" shift, and go to state 51 + "==" shift, and go to state 52 + "!=" shift, and go to state 53 + ">=" shift, and go to state 54 + "<=" shift, and go to state 55 + "<<" shift, and go to state 56 + ">>" shift, and go to state 57 + '>' shift, and go to state 58 + '<' shift, and go to state 59 + '&' shift, and go to state 60 + '|' shift, and go to state 61 + '+' shift, and go to state 62 + '-' shift, and go to state 63 + '*' shift, and go to state 64 + '/' shift, and go to state 65 + '%' shift, and go to state 66 + + $default reduce using rule 53 (assign) + + +state 154 + + 54 assign: value "*=" expr . [';', ')'] + 57 expr: expr . "&&" expr + 58 | expr . "||" expr + 59 | expr . "==" expr + 60 | expr . "!=" expr + 61 | expr . '>' expr + 62 | expr . ">=" expr + 63 | expr . '<' expr + 64 | expr . "<=" expr + 65 | expr . '&' expr + 66 | expr . '|' expr + 67 | expr . "<<" expr + 68 | expr . ">>" expr + 69 | expr . '-' expr + 70 | expr . '+' expr + 71 | expr . '*' expr + 72 | expr . '/' expr + 73 | expr . '%' expr + + "||" shift, and go to state 50 + "&&" shift, and go to state 51 + "==" shift, and go to state 52 + "!=" shift, and go to state 53 + ">=" shift, and go to state 54 + "<=" shift, and go to state 55 + "<<" shift, and go to state 56 + ">>" shift, and go to state 57 + '>' shift, and go to state 58 + '<' shift, and go to state 59 + '&' shift, and go to state 60 + '|' shift, and go to state 61 + '+' shift, and go to state 62 + '-' shift, and go to state 63 + '*' shift, and go to state 64 + '/' shift, and go to state 65 + '%' shift, and go to state 66 + + $default reduce using rule 54 (assign) + + +state 155 + + 55 assign: value "/=" expr . [';', ')'] + 57 expr: expr . "&&" expr + 58 | expr . "||" expr + 59 | expr . "==" expr + 60 | expr . "!=" expr + 61 | expr . '>' expr + 62 | expr . ">=" expr + 63 | expr . '<' expr + 64 | expr . "<=" expr + 65 | expr . '&' expr + 66 | expr . '|' expr + 67 | expr . "<<" expr + 68 | expr . ">>" expr + 69 | expr . '-' expr + 70 | expr . '+' expr + 71 | expr . '*' expr + 72 | expr . '/' expr + 73 | expr . '%' expr + + "||" shift, and go to state 50 + "&&" shift, and go to state 51 + "==" shift, and go to state 52 + "!=" shift, and go to state 53 + ">=" shift, and go to state 54 + "<=" shift, and go to state 55 + "<<" shift, and go to state 56 + ">>" shift, and go to state 57 + '>' shift, and go to state 58 + '<' shift, and go to state 59 + '&' shift, and go to state 60 + '|' shift, and go to state 61 + '+' shift, and go to state 62 + '-' shift, and go to state 63 + '*' shift, and go to state 64 + '/' shift, and go to state 65 + '%' shift, and go to state 66 + + $default reduce using rule 55 (assign) + + +state 156 + + 56 assign: value "%=" expr . [';', ')'] + 57 expr: expr . "&&" expr + 58 | expr . "||" expr + 59 | expr . "==" expr + 60 | expr . "!=" expr + 61 | expr . '>' expr + 62 | expr . ">=" expr + 63 | expr . '<' expr + 64 | expr . "<=" expr + 65 | expr . '&' expr + 66 | expr . '|' expr + 67 | expr . "<<" expr + 68 | expr . ">>" expr + 69 | expr . '-' expr + 70 | expr . '+' expr + 71 | expr . '*' expr + 72 | expr . '/' expr + 73 | expr . '%' expr + + "||" shift, and go to state 50 + "&&" shift, and go to state 51 + "==" shift, and go to state 52 + "!=" shift, and go to state 53 + ">=" shift, and go to state 54 + "<=" shift, and go to state 55 + "<<" shift, and go to state 56 + ">>" shift, and go to state 57 + '>' shift, and go to state 58 + '<' shift, and go to state 59 + '&' shift, and go to state 60 + '|' shift, and go to state 61 + '+' shift, and go to state 62 + '-' shift, and go to state 63 + '*' shift, and go to state 64 + '/' shift, and go to state 65 + '%' shift, and go to state 66 + + $default reduce using rule 56 (assign) + + +state 157 + + 51 assign: value '=' expr . [';', ')'] + 57 expr: expr . "&&" expr + 58 | expr . "||" expr + 59 | expr . "==" expr + 60 | expr . "!=" expr + 61 | expr . '>' expr + 62 | expr . ">=" expr + 63 | expr . '<' expr + 64 | expr . "<=" expr + 65 | expr . '&' expr + 66 | expr . '|' expr + 67 | expr . "<<" expr + 68 | expr . ">>" expr + 69 | expr . '-' expr + 70 | expr . '+' expr + 71 | expr . '*' expr + 72 | expr . '/' expr + 73 | expr . '%' expr + + "||" shift, and go to state 50 + "&&" shift, and go to state 51 + "==" shift, and go to state 52 + "!=" shift, and go to state 53 + ">=" shift, and go to state 54 + "<=" shift, and go to state 55 + "<<" shift, and go to state 56 + ">>" shift, and go to state 57 + '>' shift, and go to state 58 + '<' shift, and go to state 59 + '&' shift, and go to state 60 + '|' shift, and go to state 61 + '+' shift, and go to state 62 + '-' shift, and go to state 63 + '*' shift, and go to state 64 + '/' shift, and go to state 65 + '%' shift, and go to state 66 + + $default reduce using rule 51 (assign) + + +state 158 + + 33 decls: decls type value_list ';' . + + $default reduce using rule 33 (decls) + + +state 159 + + 39 statement: "identifier" '(' ')' ';' . + + $default reduce using rule 39 (statement) + + +state 160 + + 38 statement: "identifier" '(' args ')' . ';' + + ';' shift, and go to state 165 + + +state 161 + + 27 block: . '{' decl_list state_list '}' + 36 statement: . ';' + 37 | . assign ';' + 38 | . "identifier" '(' args ')' ';' + 39 | . "identifier" '(' ')' ';' + 40 | . "case" expr ':' + 41 | . "default" ':' + 42 | . "break" ';' + 43 | . "return" ';' + 44 | . "return" expr ';' + 45 | . "if" '(' expr ')' statement + 45 | "if" '(' expr ')' . statement + 46 | . "if" '(' expr ')' statement "else" statement + 46 | "if" '(' expr ')' . statement "else" statement + 47 | . "for" '(' assign ';' expr ';' assign ')' statement + 48 | . "while" '(' expr ')' statement + 49 | . "switch" '(' expr ')' '{' state_list '}' + 50 | . block + 51 assign: . value '=' expr + 52 | . value "+=" expr + 53 | . value "-=" expr + 54 | . value "*=" expr + 55 | . value "/=" expr + 56 | . value "%=" expr + 81 value: . "identifier" + 82 | . "identifier" '[' expr ']' + + "identifier" shift, and go to state 100 + "if" shift, and go to state 101 + "while" shift, and go to state 102 + "for" shift, and go to state 103 + "switch" shift, and go to state 104 + "case" shift, and go to state 105 + "default" shift, and go to state 106 + "break" shift, and go to state 107 + "return" shift, and go to state 108 + ';' shift, and go to state 109 + '{' shift, and go to state 38 + + block go to state 110 + statement go to state 166 + assign go to state 114 + value go to state 115 + + +state 162 + + 27 block: . '{' decl_list state_list '}' + 36 statement: . ';' + 37 | . assign ';' + 38 | . "identifier" '(' args ')' ';' + 39 | . "identifier" '(' ')' ';' + 40 | . "case" expr ':' + 41 | . "default" ':' + 42 | . "break" ';' + 43 | . "return" ';' + 44 | . "return" expr ';' + 45 | . "if" '(' expr ')' statement + 46 | . "if" '(' expr ')' statement "else" statement + 47 | . "for" '(' assign ';' expr ';' assign ')' statement + 48 | . "while" '(' expr ')' statement + 48 | "while" '(' expr ')' . statement + 49 | . "switch" '(' expr ')' '{' state_list '}' + 50 | . block + 51 assign: . value '=' expr + 52 | . value "+=" expr + 53 | . value "-=" expr + 54 | . value "*=" expr + 55 | . value "/=" expr + 56 | . value "%=" expr + 81 value: . "identifier" + 82 | . "identifier" '[' expr ']' + + "identifier" shift, and go to state 100 + "if" shift, and go to state 101 + "while" shift, and go to state 102 + "for" shift, and go to state 103 + "switch" shift, and go to state 104 + "case" shift, and go to state 105 + "default" shift, and go to state 106 + "break" shift, and go to state 107 + "return" shift, and go to state 108 + ';' shift, and go to state 109 + '{' shift, and go to state 38 + + block go to state 110 + statement go to state 167 + assign go to state 114 + value go to state 115 + + +state 163 + + 47 statement: "for" '(' assign ';' . expr ';' assign ')' statement + 57 expr: . expr "&&" expr + 58 | . expr "||" expr + 59 | . expr "==" expr + 60 | . expr "!=" expr + 61 | . expr '>' expr + 62 | . expr ">=" expr + 63 | . expr '<' expr + 64 | . expr "<=" expr + 65 | . expr '&' expr + 66 | . expr '|' expr + 67 | . expr "<<" expr + 68 | . expr ">>" expr + 69 | . expr '-' expr + 70 | . expr '+' expr + 71 | . expr '*' expr + 72 | . expr '/' expr + 73 | . expr '%' expr + 74 | . '-' expr + 75 | . '(' expr ')' + 76 | . value + 77 | . "ival" + 78 | . "sval" + 79 | . "identifier" '(' args ')' + 80 | . "identifier" '(' ')' + 81 value: . "identifier" + 82 | . "identifier" '[' expr ']' + + "ival" shift, and go to state 28 + "identifier" shift, and go to state 29 + "sval" shift, and go to state 30 + '-' shift, and go to state 31 + '(' shift, and go to state 32 + + expr go to state 168 + value go to state 34 + + +state 164 + + 49 statement: "switch" '(' expr ')' . '{' state_list '}' + + '{' shift, and go to state 169 + + +state 165 + + 38 statement: "identifier" '(' args ')' ';' . + + $default reduce using rule 38 (statement) + + +state 166 + + 45 statement: "if" '(' expr ')' statement . ["identifier", "if", "else", "while", "for", "switch", "case", "default", "break", "return", ';', '{', '}'] + 46 | "if" '(' expr ')' statement . "else" statement + + "else" shift, and go to state 170 + + "else" [reduce using rule 45 (statement)] + $default reduce using rule 45 (statement) + + +state 167 + + 48 statement: "while" '(' expr ')' statement . + + $default reduce using rule 48 (statement) + + +state 168 + + 47 statement: "for" '(' assign ';' expr . ';' assign ')' statement + 57 expr: expr . "&&" expr + 58 | expr . "||" expr + 59 | expr . "==" expr + 60 | expr . "!=" expr + 61 | expr . '>' expr + 62 | expr . ">=" expr + 63 | expr . '<' expr + 64 | expr . "<=" expr + 65 | expr . '&' expr + 66 | expr . '|' expr + 67 | expr . "<<" expr + 68 | expr . ">>" expr + 69 | expr . '-' expr + 70 | expr . '+' expr + 71 | expr . '*' expr + 72 | expr . '/' expr + 73 | expr . '%' expr + + "||" shift, and go to state 50 + "&&" shift, and go to state 51 + "==" shift, and go to state 52 + "!=" shift, and go to state 53 + ">=" shift, and go to state 54 + "<=" shift, and go to state 55 + "<<" shift, and go to state 56 + ">>" shift, and go to state 57 + '>' shift, and go to state 58 + '<' shift, and go to state 59 + '&' shift, and go to state 60 + '|' shift, and go to state 61 + '+' shift, and go to state 62 + '-' shift, and go to state 63 + '*' shift, and go to state 64 + '/' shift, and go to state 65 + '%' shift, and go to state 66 + ';' shift, and go to state 171 + + +state 169 + + 27 block: . '{' decl_list state_list '}' + 30 state_list: . ['}'] + 31 | . states + 34 states: . statement + 35 | . states statement + 36 statement: . ';' + 37 | . assign ';' + 38 | . "identifier" '(' args ')' ';' + 39 | . "identifier" '(' ')' ';' + 40 | . "case" expr ':' + 41 | . "default" ':' + 42 | . "break" ';' + 43 | . "return" ';' + 44 | . "return" expr ';' + 45 | . "if" '(' expr ')' statement + 46 | . "if" '(' expr ')' statement "else" statement + 47 | . "for" '(' assign ';' expr ';' assign ')' statement + 48 | . "while" '(' expr ')' statement + 49 | . "switch" '(' expr ')' '{' state_list '}' + 49 | "switch" '(' expr ')' '{' . state_list '}' + 50 | . block + 51 assign: . value '=' expr + 52 | . value "+=" expr + 53 | . value "-=" expr + 54 | . value "*=" expr + 55 | . value "/=" expr + 56 | . value "%=" expr + 81 value: . "identifier" + 82 | . "identifier" '[' expr ']' + + "identifier" shift, and go to state 100 + "if" shift, and go to state 101 + "while" shift, and go to state 102 + "for" shift, and go to state 103 + "switch" shift, and go to state 104 + "case" shift, and go to state 105 + "default" shift, and go to state 106 + "break" shift, and go to state 107 + "return" shift, and go to state 108 + ';' shift, and go to state 109 + '{' shift, and go to state 38 + + $default reduce using rule 30 (state_list) + + block go to state 110 + state_list go to state 172 + states go to state 112 + statement go to state 113 + assign go to state 114 + value go to state 115 + + +state 170 + + 27 block: . '{' decl_list state_list '}' + 36 statement: . ';' + 37 | . assign ';' + 38 | . "identifier" '(' args ')' ';' + 39 | . "identifier" '(' ')' ';' + 40 | . "case" expr ':' + 41 | . "default" ':' + 42 | . "break" ';' + 43 | . "return" ';' + 44 | . "return" expr ';' + 45 | . "if" '(' expr ')' statement + 46 | . "if" '(' expr ')' statement "else" statement + 46 | "if" '(' expr ')' statement "else" . statement + 47 | . "for" '(' assign ';' expr ';' assign ')' statement + 48 | . "while" '(' expr ')' statement + 49 | . "switch" '(' expr ')' '{' state_list '}' + 50 | . block + 51 assign: . value '=' expr + 52 | . value "+=" expr + 53 | . value "-=" expr + 54 | . value "*=" expr + 55 | . value "/=" expr + 56 | . value "%=" expr + 81 value: . "identifier" + 82 | . "identifier" '[' expr ']' + + "identifier" shift, and go to state 100 + "if" shift, and go to state 101 + "while" shift, and go to state 102 + "for" shift, and go to state 103 + "switch" shift, and go to state 104 + "case" shift, and go to state 105 + "default" shift, and go to state 106 + "break" shift, and go to state 107 + "return" shift, and go to state 108 + ';' shift, and go to state 109 + '{' shift, and go to state 38 + + block go to state 110 + statement go to state 173 + assign go to state 114 + value go to state 115 + + +state 171 + + 47 statement: "for" '(' assign ';' expr ';' . assign ')' statement + 51 assign: . value '=' expr + 52 | . value "+=" expr + 53 | . value "-=" expr + 54 | . value "*=" expr + 55 | . value "/=" expr + 56 | . value "%=" expr + 81 value: . "identifier" + 82 | . "identifier" '[' expr ']' + + "identifier" shift, and go to state 35 + + assign go to state 174 + value go to state 115 + + +state 172 + + 49 statement: "switch" '(' expr ')' '{' state_list . '}' + + '}' shift, and go to state 175 + + +state 173 + + 46 statement: "if" '(' expr ')' statement "else" statement . + + $default reduce using rule 46 (statement) + + +state 174 + + 47 statement: "for" '(' assign ';' expr ';' assign . ')' statement + + ')' shift, and go to state 176 + + +state 175 + + 49 statement: "switch" '(' expr ')' '{' state_list '}' . + + $default reduce using rule 49 (statement) + + +state 176 + + 27 block: . '{' decl_list state_list '}' + 36 statement: . ';' + 37 | . assign ';' + 38 | . "identifier" '(' args ')' ';' + 39 | . "identifier" '(' ')' ';' + 40 | . "case" expr ':' + 41 | . "default" ':' + 42 | . "break" ';' + 43 | . "return" ';' + 44 | . "return" expr ';' + 45 | . "if" '(' expr ')' statement + 46 | . "if" '(' expr ')' statement "else" statement + 47 | . "for" '(' assign ';' expr ';' assign ')' statement + 47 | "for" '(' assign ';' expr ';' assign ')' . statement + 48 | . "while" '(' expr ')' statement + 49 | . "switch" '(' expr ')' '{' state_list '}' + 50 | . block + 51 assign: . value '=' expr + 52 | . value "+=" expr + 53 | . value "-=" expr + 54 | . value "*=" expr + 55 | . value "/=" expr + 56 | . value "%=" expr + 81 value: . "identifier" + 82 | . "identifier" '[' expr ']' + + "identifier" shift, and go to state 100 + "if" shift, and go to state 101 + "while" shift, and go to state 102 + "for" shift, and go to state 103 + "switch" shift, and go to state 104 + "case" shift, and go to state 105 + "default" shift, and go to state 106 + "break" shift, and go to state 107 + "return" shift, and go to state 108 + ';' shift, and go to state 109 + '{' shift, and go to state 38 + + block go to state 110 + statement go to state 177 + assign go to state 114 + value go to state 115 + + +state 177 + + 47 statement: "for" '(' assign ';' expr ';' assign ')' statement . + + $default reduce using rule 47 (statement)