Mercurial > hg > Members > nobuyasu > SampleSource
view Bison-Flex/Compiler-StackBase/EUC/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 source
State 166 conflicts: 1 shift/reduce 文法 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: /* 空 */ 29 | decls 30 state_list: /* 空 */ 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 出現位置の規則による終端 "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) 出現位置の規則による非終端 $accept (51) 左辺: 0 unit (52) 左辺: 1 2, 右辺: 0 2 define_or_state (53) 左辺: 3 4 5, 右辺: 1 2 declaration (54) 左辺: 6 7 8 9 10, 右辺: 5 value_list (55) 左辺: 11 12, 右辺: 6 12 32 33 arglist (56) 左辺: 13 14, 右辺: 8 10 14 22 24 arg (57) 左辺: 15 16 17 18 19 20, 右辺: 13 14 function (58) 左辺: 21 22 23 24, 右辺: 4 type (59) 左辺: 25 26, 右辺: 6 7 8 15 16 17 18 19 20 21 22 32 33 block (60) 左辺: 27, 右辺: 21 22 23 24 50 decl_list (61) 左辺: 28 29, 右辺: 27 state_list (62) 左辺: 30 31, 右辺: 27 49 decls (63) 左辺: 32 33, 右辺: 29 33 states (64) 左辺: 34 35, 右辺: 31 35 statement (65) 左辺: 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50, 右辺: 34 35 45 46 47 48 assign (66) 左辺: 51 52 53 54 55 56, 右辺: 37 47 expr (67) 左辺: 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80, 右辺: 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) 左辺: 81 82, 右辺: 11 12 51 52 53 54 55 56 76 args (69) 左辺: 83 84, 右辺: 38 79 84 状態 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 状態 1 3 define_or_state: error . ';' ';' shift, and go to state 10 状態 2 25 type: "int" . $default reduce using rule 25 (type) 状態 3 26 type: "string" . $default reduce using rule 26 (type) 状態 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 状態 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 状態 6 1 unit: define_or_state . $default reduce using rule 1 (unit) 状態 7 5 define_or_state: declaration . $default reduce using rule 5 (define_or_state) 状態 8 4 define_or_state: function . $default reduce using rule 4 (define_or_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 状態 10 3 define_or_state: error ';' . $default reduce using rule 3 (define_or_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 状態 12 0 $accept: unit "end of file" . $default accept 状態 13 2 unit: unit define_or_state . $default reduce using rule 2 (unit) 状態 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) 状態 15 6 declaration: type value_list . ';' 12 value_list: value_list . ',' value ';' shift, and go to state 20 ',' shift, and go to state 21 状態 16 11 value_list: value . $default reduce using rule 11 (value_list) 状態 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 状態 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 状態 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 状態 20 6 declaration: type value_list ';' . $default reduce using rule 6 (declaration) 状態 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 状態 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 状態 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 状態 24 13 arglist: arg . $default reduce using rule 13 (arglist) 状態 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) 状態 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 状態 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 状態 28 77 expr: "ival" . $default reduce using rule 77 (expr) 状態 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) 状態 30 78 expr: "sval" . $default reduce using rule 78 (expr) 状態 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 状態 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 状態 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 状態 34 76 expr: value . $default reduce using rule 76 (expr) 状態 35 81 value: "identifier" . ["+=", "-=", "*=", "/=", "%=", ';', ',', '='] 82 | "identifier" . '[' expr ']' '[' shift, and go to state 19 $default reduce using rule 81 (value) 状態 36 12 value_list: value_list ',' value . $default reduce using rule 12 (value_list) 状態 37 9 declaration: "void" "identifier" '(' ')' ';' . $default reduce using rule 9 (declaration) 状態 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 状態 39 23 function: "void" "identifier" '(' ')' block . $default reduce using rule 23 (function) 状態 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 状態 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 状態 42 17 arg: type "identifier" . [')', ','] 19 | type "identifier" . '[' ']' '[' shift, and go to state 74 $default reduce using rule 17 (arg) 状態 43 16 arg: type '&' . [')', ','] 18 | type '&' . "identifier" 20 | type '&' . "identifier" '[' ']' "identifier" shift, and go to state 75 $default reduce using rule 16 (arg) 状態 44 7 declaration: type "identifier" '(' ')' ';' . $default reduce using rule 7 (declaration) 状態 45 21 function: type "identifier" '(' ')' block . $default reduce using rule 21 (function) 状態 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 状態 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 状態 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). 状態 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 状態 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 状態 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 状態 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 状態 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 状態 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 状態 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 状態 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 状態 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 状態 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 状態 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 状態 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 状態 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 状態 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 状態 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 状態 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 状態 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 状態 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 状態 67 82 value: "identifier" '[' expr ']' . $default reduce using rule 82 (value) 状態 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 状態 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 状態 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 状態 71 10 declaration: "void" "identifier" '(' arglist ')' ';' . $default reduce using rule 10 (declaration) 状態 72 24 function: "void" "identifier" '(' arglist ')' block . $default reduce using rule 24 (function) 状態 73 14 arglist: arglist ',' arg . $default reduce using rule 14 (arglist) 状態 74 19 arg: type "identifier" '[' . ']' ']' shift, and go to state 117 状態 75 18 arg: type '&' "identifier" . [')', ','] 20 | type '&' "identifier" . '[' ']' '[' shift, and go to state 118 $default reduce using rule 18 (arg) 状態 76 8 declaration: type "identifier" '(' arglist ')' ';' . $default reduce using rule 8 (declaration) 状態 77 22 function: type "identifier" '(' arglist ')' block . $default reduce using rule 22 (function) 状態 78 80 expr: "identifier" '(' ')' . $default reduce using rule 80 (expr) 状態 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) 状態 80 79 expr: "identifier" '(' args . ')' 84 args: args . ',' expr ')' shift, and go to state 119 ',' shift, and go to state 120 状態 81 75 expr: '(' expr ')' . $default reduce using rule 75 (expr) 状態 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 ("||" < '%'). 状態 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 ("&&" < '%'). 状態 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 ("==" < '%'). 状態 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 ("!=" < '%'). 状態 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 (">=" < '%'). 状態 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 ("<=" < '%'). 状態 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 ("<<" < '%'). 状態 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 (">>" < '%'). 状態 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 ('>' < '%'). 状態 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 ('<' < '%'). 状態 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 ('&' < '%'). 状態 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 ('|' < '%'). 状態 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 ('+' < '%'). 状態 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 ('-' < '%'). 状態 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 '%'). 状態 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 '%'). 状態 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 '%'). 状態 99 12 value_list: value_list . ',' value 32 decls: type value_list . ';' ';' shift, and go to state 121 ',' shift, and go to state 21 状態 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) 状態 101 45 statement: "if" . '(' expr ')' statement 46 | "if" . '(' expr ')' statement "else" statement '(' shift, and go to state 123 状態 102 48 statement: "while" . '(' expr ')' statement '(' shift, and go to state 124 状態 103 47 statement: "for" . '(' assign ';' expr ';' assign ')' statement '(' shift, and go to state 125 状態 104 49 statement: "switch" . '(' expr ')' '{' state_list '}' '(' shift, and go to state 126 状態 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 状態 106 41 statement: "default" . ':' ':' shift, and go to state 128 状態 107 42 statement: "break" . ';' ';' shift, and go to state 129 状態 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 状態 109 36 statement: ';' . $default reduce using rule 36 (statement) 状態 110 50 statement: block . $default reduce using rule 50 (statement) 状態 111 27 block: '{' decl_list state_list . '}' '}' shift, and go to state 132 状態 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 状態 113 34 states: statement . $default reduce using rule 34 (states) 状態 114 37 statement: assign . ';' ';' shift, and go to state 134 状態 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 状態 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 状態 117 19 arg: type "identifier" '[' ']' . $default reduce using rule 19 (arg) 状態 118 20 arg: type '&' "identifier" '[' . ']' ']' shift, and go to state 142 状態 119 79 expr: "identifier" '(' args ')' . $default reduce using rule 79 (expr) 状態 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 状態 121 32 decls: type value_list ';' . $default reduce using rule 32 (decls) 状態 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 状態 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 状態 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 状態 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 状態 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 状態 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 状態 128 41 statement: "default" ':' . $default reduce using rule 41 (statement) 状態 129 42 statement: "break" ';' . $default reduce using rule 42 (statement) 状態 130 43 statement: "return" ';' . $default reduce using rule 43 (statement) 状態 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 状態 132 27 block: '{' decl_list state_list '}' . $default reduce using rule 27 (block) 状態 133 35 states: states statement . $default reduce using rule 35 (states) 状態 134 37 statement: assign ';' . $default reduce using rule 37 (statement) 状態 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 状態 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 状態 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 状態 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 状態 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 状態 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 状態 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 状態 142 20 arg: type '&' "identifier" '[' ']' . $default reduce using rule 20 (arg) 状態 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) 状態 144 39 statement: "identifier" '(' ')' . ';' ';' shift, and go to state 159 状態 145 38 statement: "identifier" '(' args . ')' ';' 84 args: args . ',' expr ')' shift, and go to state 160 ',' shift, and go to state 120 状態 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 状態 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 状態 148 47 statement: "for" '(' assign . ';' expr ';' assign ')' statement ';' shift, and go to state 163 状態 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 状態 150 40 statement: "case" expr ':' . $default reduce using rule 40 (statement) 状態 151 44 statement: "return" expr ';' . $default reduce using rule 44 (statement) 状態 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) 状態 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) 状態 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) 状態 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) 状態 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) 状態 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) 状態 158 33 decls: decls type value_list ';' . $default reduce using rule 33 (decls) 状態 159 39 statement: "identifier" '(' ')' ';' . $default reduce using rule 39 (statement) 状態 160 38 statement: "identifier" '(' args ')' . ';' ';' shift, and go to state 165 状態 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 状態 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 状態 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 状態 164 49 statement: "switch" '(' expr ')' . '{' state_list '}' '{' shift, and go to state 169 状態 165 38 statement: "identifier" '(' args ')' ';' . $default reduce using rule 38 (statement) 状態 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) 状態 167 48 statement: "while" '(' expr ')' statement . $default reduce using rule 48 (statement) 状態 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 状態 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 状態 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 状態 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 状態 172 49 statement: "switch" '(' expr ')' '{' state_list . '}' '}' shift, and go to state 175 状態 173 46 statement: "if" '(' expr ')' statement "else" statement . $default reduce using rule 46 (statement) 状態 174 47 statement: "for" '(' assign ';' expr ';' assign . ')' statement ')' shift, and go to state 176 状態 175 49 statement: "switch" '(' expr ')' '{' state_list '}' . $default reduce using rule 49 (statement) 状態 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 状態 177 47 statement: "for" '(' assign ';' expr ';' assign ')' statement . $default reduce using rule 47 (statement)