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)