The Sol Programming Language!
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

9346 lines
339 KiB

State 8 conflicts: 13 shift/reduce
State 19 conflicts: 2 shift/reduce
State 21 conflicts: 13 shift/reduce
State 24 conflicts: 1 shift/reduce
State 28 conflicts: 1 shift/reduce
State 34 conflicts: 1 shift/reduce
State 46 conflicts: 1 shift/reduce
State 47 conflicts: 1 shift/reduce
State 59 conflicts: 21 reduce/reduce
State 60 conflicts: 4 reduce/reduce
State 66 conflicts: 1 shift/reduce
State 68 conflicts: 21 reduce/reduce
State 91 conflicts: 13 shift/reduce
State 105 conflicts: 1 shift/reduce
State 108 conflicts: 2 shift/reduce
State 109 conflicts: 2 shift/reduce
State 110 conflicts: 2 shift/reduce
State 111 conflicts: 2 shift/reduce
State 112 conflicts: 2 shift/reduce
State 113 conflicts: 2 shift/reduce
State 114 conflicts: 2 shift/reduce
State 115 conflicts: 2 shift/reduce
State 116 conflicts: 2 shift/reduce
State 125 conflicts: 1 shift/reduce
State 128 conflicts: 4 reduce/reduce
State 129 conflicts: 4 reduce/reduce
State 130 conflicts: 12 reduce/reduce
State 131 conflicts: 12 reduce/reduce
State 132 conflicts: 4 reduce/reduce
State 133 conflicts: 4 reduce/reduce
State 134 conflicts: 4 reduce/reduce
State 135 conflicts: 4 reduce/reduce
State 136 conflicts: 4 reduce/reduce
State 137 conflicts: 4 reduce/reduce
State 138 conflicts: 15 reduce/reduce
State 139 conflicts: 15 reduce/reduce
State 140 conflicts: 15 reduce/reduce
State 141 conflicts: 1 shift/reduce, 15 reduce/reduce
State 142 conflicts: 5 shift/reduce, 16 reduce/reduce
State 143 conflicts: 5 shift/reduce, 16 reduce/reduce
State 144 conflicts: 5 shift/reduce, 16 reduce/reduce
State 145 conflicts: 5 shift/reduce, 16 reduce/reduce
State 146 conflicts: 5 shift/reduce, 16 reduce/reduce
State 149 conflicts: 2 shift/reduce
State 150 conflicts: 2 shift/reduce
State 151 conflicts: 2 shift/reduce
State 152 conflicts: 2 shift/reduce
State 153 conflicts: 2 shift/reduce
State 154 conflicts: 2 shift/reduce
State 155 conflicts: 2 shift/reduce
State 156 conflicts: 2 shift/reduce
State 157 conflicts: 2 shift/reduce
State 165 conflicts: 1 shift/reduce
State 169 conflicts: 13 shift/reduce
State 182 conflicts: 1 shift/reduce
Grammar
0 $accept: program $end
1 program: stmt_list
2 stmt_list: stmt_list stmt
3 | %empty
4 stmt: expr
5 | IF expr THEN stmt_list END
6 | IF expr THEN stmt_list ELSE stmt_list END
7 | WHILE expr DO stmt_list END
8 | FOR IDENT IN expr DO stmt_list END
9 | RETURN expr
10 | RETURN
11 | BREAK
12 | CONTINUE
13 | stmt SEMICOLON
14 expr: IDENT ASSIGN expr
15 | IDENT ASSIGNPLUS expr
16 | IDENT ASSIGNMINUS expr
17 | IDENT ASSIGNSTAR expr
18 | IDENT ASSIGNSLASH expr
19 | IDENT ASSIGNDSTAR expr
20 | IDENT ASSIGNBAND expr
21 | IDENT ASSIGNBOR expr
22 | IDENT ASSIGNBXOR expr
23 | ex_index_expr ASSIGN expr
24 | ex_index_expr ASSIGNPLUS expr
25 | ex_index_expr ASSIGNMINUS expr
26 | ex_index_expr ASSIGNSTAR expr
27 | ex_index_expr ASSIGNSLASH expr
28 | ex_index_expr ASSIGNDSTAR expr
29 | ex_index_expr ASSIGNBAND expr
30 | ex_index_expr ASSIGNBOR expr
31 | ex_index_expr ASSIGNBXOR expr
32 | logic_expr
33 logic_expr: logic_expr LAND ulogic_expr
34 | logic_expr LOR ulogic_expr
35 | ulogic_expr
36 ulogic_expr: LNOT ulogic_expr
37 | rel_expr
38 rel_expr: term_expr EQUAL rel_expr
39 | term_expr NEQUAL rel_expr
40 | term_expr LESS rel_expr
41 | term_expr GREATER rel_expr
42 | term_expr LESSEQ rel_expr
43 | term_expr GREATEREQ rel_expr
44 | term_expr
45 term_expr: term_expr PLUS factor_expr
46 | term_expr MINUS factor_expr
47 | factor_expr
48 factor_expr: factor_expr STAR power_expr
49 | factor_expr SLASH power_expr
50 | factor_expr PERCENT power_expr
51 | power_expr
52 power_expr: power_expr DSTAR power_expr
53 | binary_expr
54 binary_expr: binary_expr BAND binary_expr
55 | binary_expr BOR binary_expr
56 | binary_expr BXOR binary_expr
57 | binary_expr LSHIFT binary_expr
58 | binary_expr RSHIFT binary_expr
59 | ubinary_expr
60 ubinary_expr: BNOT ubinary_expr
61 | ulen_expr
62 ulen_expr: POUND ulen_expr
63 | call_expr
64 call_expr: call_expr LPAREN expr_list RPAREN
65 | call_expr COLON IDENT LPAREN expr_list RPAREN
66 | funcdecl_expr
67 funcdecl_expr: FUNC IDENT LPAREN ident_list RPAREN stmt_list END
68 | FUNC LPAREN ident_list RPAREN stmt_list END
69 | index_expr
70 index_expr: expr LBRACKET expr RBRACKET
71 | expr DOT IDENT
72 | ref_expr
73 ex_index_expr: expr LBRACKET expr RBRACKET
74 | expr DOT IDENT
75 ref_expr: IDENT
76 | lit_expr
77 lit_expr: INT
78 | MINUS INT
79 | FLOAT
80 | STRING
81 | NONE
82 | gen_expr
83 gen_expr: LBRACKET expr_list RBRACKET
84 | LBRACE assoc_list RBRACE
85 | paren_expr
86 paren_expr: LPAREN expr RPAREN
87 expr_list: %empty
88 | expr
89 | expr_list COMMA
90 | expr_list expr
91 ident_list: %empty
92 | IDENT
93 | ident_list COMMA
94 | ident_list IDENT
95 assoc_list: %empty
96 | assoc_item
97 | assoc_list COMMA
98 | assoc_list assoc_item
99 assoc_item: LBRACKET expr RBRACKET ASSIGN expr
100 | IDENT ASSIGN expr
Terminals, with rules where they appear
$end (0) 0
error (256)
IF (258) 5 6
THEN (259) 5 6
ELSE (260) 6
WHILE (261) 7
FOR (262) 8
IN (263) 8
DO (264) 7 8
FUNC (265) 67 68
RETURN (266) 9 10
BREAK (267) 11
CONTINUE (268) 12
END (269) 5 6 7 8 67 68
NONE (270) 81
IDENT (271) 8 14 15 16 17 18 19 20 21 22 65 67 71 74 75 92 94 100
INT (272) 77 78
FLOAT (273) 79
STRING (274) 80
PLUS (275) 45
MINUS (276) 46 78
STAR (277) 48
SLASH (278) 49
PERCENT (279) 50
DSTAR (280) 52
BAND (281) 54
BOR (282) 55
BXOR (283) 56
BNOT (284) 60
LAND (285) 33
LOR (286) 34
LNOT (287) 36
ASSIGN (288) 14 23 99 100
ASSIGNPLUS (289) 15 24
ASSIGNMINUS (290) 16 25
ASSIGNSTAR (291) 17 26
ASSIGNSLASH (292) 18 27
ASSIGNDSTAR (293) 19 28
ASSIGNBAND (294) 20 29
ASSIGNBOR (295) 21 30
ASSIGNBXOR (296) 22 31
EQUAL (297) 38
NEQUAL (298) 39
LESS (299) 40
GREATER (300) 41
LESSEQ (301) 42
GREATEREQ (302) 43
RSHIFT (303) 58
LSHIFT (304) 57
LBRACE (305) 84
RBRACE (306) 84
LPAREN (307) 64 65 67 68 86
RPAREN (308) 64 65 67 68 86
LBRACKET (309) 70 73 83 99
RBRACKET (310) 70 73 83 99
DOT (311) 71 74
COLON (312) 65
SEMICOLON (313) 13
COMMA (314) 89 93 97
POUND (315) 62
Nonterminals, with rules where they appear
$accept (61)
on left: 0
program (62)
on left: 1, on right: 0
stmt_list (63)
on left: 2 3, on right: 1 2 5 6 7 8 67 68
stmt (64)
on left: 4 5 6 7 8 9 10 11 12 13, on right: 2 13
expr (65)
on left: 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
32, on right: 4 5 6 7 8 9 14 15 16 17 18 19 20 21 22 23 24 25 26
27 28 29 30 31 70 71 73 74 86 88 90 99 100
logic_expr (66)
on left: 33 34 35, on right: 32 33 34
ulogic_expr (67)
on left: 36 37, on right: 33 34 35 36
rel_expr (68)
on left: 38 39 40 41 42 43 44, on right: 37 38 39 40 41 42 43
term_expr (69)
on left: 45 46 47, on right: 38 39 40 41 42 43 44 45 46
factor_expr (70)
on left: 48 49 50 51, on right: 45 46 47 48 49 50
power_expr (71)
on left: 52 53, on right: 48 49 50 51 52
binary_expr (72)
on left: 54 55 56 57 58 59, on right: 53 54 55 56 57 58
ubinary_expr (73)
on left: 60 61, on right: 59 60
ulen_expr (74)
on left: 62 63, on right: 61 62
call_expr (75)
on left: 64 65 66, on right: 63 64 65
funcdecl_expr (76)
on left: 67 68 69, on right: 66
index_expr (77)
on left: 70 71 72, on right: 69
ex_index_expr (78)
on left: 73 74, on right: 23 24 25 26 27 28 29 30 31
ref_expr (79)
on left: 75 76, on right: 72
lit_expr (80)
on left: 77 78 79 80 81 82, on right: 76
gen_expr (81)
on left: 83 84 85, on right: 82
paren_expr (82)
on left: 86, on right: 85
expr_list (83)
on left: 87 88 89 90, on right: 64 65 83 89 90
ident_list (84)
on left: 91 92 93 94, on right: 67 68 93 94
assoc_list (85)
on left: 95 96 97 98, on right: 84 97 98
assoc_item (86)
on left: 99 100, on right: 96 98
State 0
0 $accept: . program $end
1 program: . stmt_list
2 stmt_list: . stmt_list stmt
3 | . %empty
$default reduce using rule 3 (stmt_list)
program go to state 1
stmt_list go to state 2
State 1
0 $accept: program . $end
$end shift, and go to state 3
State 2
1 program: stmt_list . [$end]
2 stmt_list: stmt_list . stmt
4 stmt: . expr
5 | . IF expr THEN stmt_list END
6 | . IF expr THEN stmt_list ELSE stmt_list END
7 | . WHILE expr DO stmt_list END
8 | . FOR IDENT IN expr DO stmt_list END
9 | . RETURN expr
10 | . RETURN
11 | . BREAK
12 | . CONTINUE
13 | . stmt SEMICOLON
14 expr: . IDENT ASSIGN expr
15 | . IDENT ASSIGNPLUS expr
16 | . IDENT ASSIGNMINUS expr
17 | . IDENT ASSIGNSTAR expr
18 | . IDENT ASSIGNSLASH expr
19 | . IDENT ASSIGNDSTAR expr
20 | . IDENT ASSIGNBAND expr
21 | . IDENT ASSIGNBOR expr
22 | . IDENT ASSIGNBXOR expr
23 | . ex_index_expr ASSIGN expr
24 | . ex_index_expr ASSIGNPLUS expr
25 | . ex_index_expr ASSIGNMINUS expr
26 | . ex_index_expr ASSIGNSTAR expr
27 | . ex_index_expr ASSIGNSLASH expr
28 | . ex_index_expr ASSIGNDSTAR expr
29 | . ex_index_expr ASSIGNBAND expr
30 | . ex_index_expr ASSIGNBOR expr
31 | . ex_index_expr ASSIGNBXOR expr
32 | . logic_expr
33 logic_expr: . logic_expr LAND ulogic_expr
34 | . logic_expr LOR ulogic_expr
35 | . ulogic_expr
36 ulogic_expr: . LNOT ulogic_expr
37 | . rel_expr
38 rel_expr: . term_expr EQUAL rel_expr
39 | . term_expr NEQUAL rel_expr
40 | . term_expr LESS rel_expr
41 | . term_expr GREATER rel_expr
42 | . term_expr LESSEQ rel_expr
43 | . term_expr GREATEREQ rel_expr
44 | . term_expr
45 term_expr: . term_expr PLUS factor_expr
46 | . term_expr MINUS factor_expr
47 | . factor_expr
48 factor_expr: . factor_expr STAR power_expr
49 | . factor_expr SLASH power_expr
50 | . factor_expr PERCENT power_expr
51 | . power_expr
52 power_expr: . power_expr DSTAR power_expr
53 | . binary_expr
54 binary_expr: . binary_expr BAND binary_expr
55 | . binary_expr BOR binary_expr
56 | . binary_expr BXOR binary_expr
57 | . binary_expr LSHIFT binary_expr
58 | . binary_expr RSHIFT binary_expr
59 | . ubinary_expr
60 ubinary_expr: . BNOT ubinary_expr
61 | . ulen_expr
62 ulen_expr: . POUND ulen_expr
63 | . call_expr
64 call_expr: . call_expr LPAREN expr_list RPAREN
65 | . call_expr COLON IDENT LPAREN expr_list RPAREN
66 | . funcdecl_expr
67 funcdecl_expr: . FUNC IDENT LPAREN ident_list RPAREN stmt_list END
68 | . FUNC LPAREN ident_list RPAREN stmt_list END
69 | . index_expr
70 index_expr: . expr LBRACKET expr RBRACKET
71 | . expr DOT IDENT
72 | . ref_expr
73 ex_index_expr: . expr LBRACKET expr RBRACKET
74 | . expr DOT IDENT
75 ref_expr: . IDENT
76 | . lit_expr
77 lit_expr: . INT
78 | . MINUS INT
79 | . FLOAT
80 | . STRING
81 | . NONE
82 | . gen_expr
83 gen_expr: . LBRACKET expr_list RBRACKET
84 | . LBRACE assoc_list RBRACE
85 | . paren_expr
86 paren_expr: . LPAREN expr RPAREN
IF shift, and go to state 4
WHILE shift, and go to state 5
FOR shift, and go to state 6
FUNC shift, and go to state 7
RETURN shift, and go to state 8
BREAK shift, and go to state 9
CONTINUE shift, and go to state 10
NONE shift, and go to state 11
IDENT shift, and go to state 12
INT shift, and go to state 13
FLOAT shift, and go to state 14
STRING shift, and go to state 15
MINUS shift, and go to state 16
BNOT shift, and go to state 17
LNOT shift, and go to state 18
LBRACE shift, and go to state 19
LPAREN shift, and go to state 20
LBRACKET shift, and go to state 21
POUND shift, and go to state 22
$default reduce using rule 1 (program)
stmt go to state 23
expr go to state 24
logic_expr go to state 25
ulogic_expr go to state 26
rel_expr go to state 27
term_expr go to state 28
factor_expr go to state 29
power_expr go to state 30
binary_expr go to state 31
ubinary_expr go to state 32
ulen_expr go to state 33
call_expr go to state 34
funcdecl_expr go to state 35
index_expr go to state 36
ex_index_expr go to state 37
ref_expr go to state 38
lit_expr go to state 39
gen_expr go to state 40
paren_expr go to state 41
State 3
0 $accept: program $end .
$default accept
State 4
5 stmt: IF . expr THEN stmt_list END
6 | IF . expr THEN stmt_list ELSE stmt_list END
14 expr: . IDENT ASSIGN expr
15 | . IDENT ASSIGNPLUS expr
16 | . IDENT ASSIGNMINUS expr
17 | . IDENT ASSIGNSTAR expr
18 | . IDENT ASSIGNSLASH expr
19 | . IDENT ASSIGNDSTAR expr
20 | . IDENT ASSIGNBAND expr
21 | . IDENT ASSIGNBOR expr
22 | . IDENT ASSIGNBXOR expr
23 | . ex_index_expr ASSIGN expr
24 | . ex_index_expr ASSIGNPLUS expr
25 | . ex_index_expr ASSIGNMINUS expr
26 | . ex_index_expr ASSIGNSTAR expr
27 | . ex_index_expr ASSIGNSLASH expr
28 | . ex_index_expr ASSIGNDSTAR expr
29 | . ex_index_expr ASSIGNBAND expr
30 | . ex_index_expr ASSIGNBOR expr
31 | . ex_index_expr ASSIGNBXOR expr
32 | . logic_expr
33 logic_expr: . logic_expr LAND ulogic_expr
34 | . logic_expr LOR ulogic_expr
35 | . ulogic_expr
36 ulogic_expr: . LNOT ulogic_expr
37 | . rel_expr
38 rel_expr: . term_expr EQUAL rel_expr
39 | . term_expr NEQUAL rel_expr
40 | . term_expr LESS rel_expr
41 | . term_expr GREATER rel_expr
42 | . term_expr LESSEQ rel_expr
43 | . term_expr GREATEREQ rel_expr
44 | . term_expr
45 term_expr: . term_expr PLUS factor_expr
46 | . term_expr MINUS factor_expr
47 | . factor_expr
48 factor_expr: . factor_expr STAR power_expr
49 | . factor_expr SLASH power_expr
50 | . factor_expr PERCENT power_expr
51 | . power_expr
52 power_expr: . power_expr DSTAR power_expr
53 | . binary_expr
54 binary_expr: . binary_expr BAND binary_expr
55 | . binary_expr BOR binary_expr
56 | . binary_expr BXOR binary_expr
57 | . binary_expr LSHIFT binary_expr
58 | . binary_expr RSHIFT binary_expr
59 | . ubinary_expr
60 ubinary_expr: . BNOT ubinary_expr
61 | . ulen_expr
62 ulen_expr: . POUND ulen_expr
63 | . call_expr
64 call_expr: . call_expr LPAREN expr_list RPAREN
65 | . call_expr COLON IDENT LPAREN expr_list RPAREN
66 | . funcdecl_expr
67 funcdecl_expr: . FUNC IDENT LPAREN ident_list RPAREN stmt_list END
68 | . FUNC LPAREN ident_list RPAREN stmt_list END
69 | . index_expr
70 index_expr: . expr LBRACKET expr RBRACKET
71 | . expr DOT IDENT
72 | . ref_expr
73 ex_index_expr: . expr LBRACKET expr RBRACKET
74 | . expr DOT IDENT
75 ref_expr: . IDENT
76 | . lit_expr
77 lit_expr: . INT
78 | . MINUS INT
79 | . FLOAT
80 | . STRING
81 | . NONE
82 | . gen_expr
83 gen_expr: . LBRACKET expr_list RBRACKET
84 | . LBRACE assoc_list RBRACE
85 | . paren_expr
86 paren_expr: . LPAREN expr RPAREN
FUNC shift, and go to state 7
NONE shift, and go to state 11
IDENT shift, and go to state 12
INT shift, and go to state 13
FLOAT shift, and go to state 14
STRING shift, and go to state 15
MINUS shift, and go to state 16
BNOT shift, and go to state 17
LNOT shift, and go to state 18
LBRACE shift, and go to state 19
LPAREN shift, and go to state 20
LBRACKET shift, and go to state 21
POUND shift, and go to state 22
expr go to state 42
logic_expr go to state 25
ulogic_expr go to state 26
rel_expr go to state 27
term_expr go to state 28
factor_expr go to state 29
power_expr go to state 30
binary_expr go to state 31
ubinary_expr go to state 32
ulen_expr go to state 33
call_expr go to state 34
funcdecl_expr go to state 35
index_expr go to state 36
ex_index_expr go to state 37
ref_expr go to state 38
lit_expr go to state 39
gen_expr go to state 40
paren_expr go to state 41
State 5
7 stmt: WHILE . expr DO stmt_list END
14 expr: . IDENT ASSIGN expr
15 | . IDENT ASSIGNPLUS expr
16 | . IDENT ASSIGNMINUS expr
17 | . IDENT ASSIGNSTAR expr
18 | . IDENT ASSIGNSLASH expr
19 | . IDENT ASSIGNDSTAR expr
20 | . IDENT ASSIGNBAND expr
21 | . IDENT ASSIGNBOR expr
22 | . IDENT ASSIGNBXOR expr
23 | . ex_index_expr ASSIGN expr
24 | . ex_index_expr ASSIGNPLUS expr
25 | . ex_index_expr ASSIGNMINUS expr
26 | . ex_index_expr ASSIGNSTAR expr
27 | . ex_index_expr ASSIGNSLASH expr
28 | . ex_index_expr ASSIGNDSTAR expr
29 | . ex_index_expr ASSIGNBAND expr
30 | . ex_index_expr ASSIGNBOR expr
31 | . ex_index_expr ASSIGNBXOR expr
32 | . logic_expr
33 logic_expr: . logic_expr LAND ulogic_expr
34 | . logic_expr LOR ulogic_expr
35 | . ulogic_expr
36 ulogic_expr: . LNOT ulogic_expr
37 | . rel_expr
38 rel_expr: . term_expr EQUAL rel_expr
39 | . term_expr NEQUAL rel_expr
40 | . term_expr LESS rel_expr
41 | . term_expr GREATER rel_expr
42 | . term_expr LESSEQ rel_expr
43 | . term_expr GREATEREQ rel_expr
44 | . term_expr
45 term_expr: . term_expr PLUS factor_expr
46 | . term_expr MINUS factor_expr
47 | . factor_expr
48 factor_expr: . factor_expr STAR power_expr
49 | . factor_expr SLASH power_expr
50 | . factor_expr PERCENT power_expr
51 | . power_expr
52 power_expr: . power_expr DSTAR power_expr
53 | . binary_expr
54 binary_expr: . binary_expr BAND binary_expr
55 | . binary_expr BOR binary_expr
56 | . binary_expr BXOR binary_expr
57 | . binary_expr LSHIFT binary_expr
58 | . binary_expr RSHIFT binary_expr
59 | . ubinary_expr
60 ubinary_expr: . BNOT ubinary_expr
61 | . ulen_expr
62 ulen_expr: . POUND ulen_expr
63 | . call_expr
64 call_expr: . call_expr LPAREN expr_list RPAREN
65 | . call_expr COLON IDENT LPAREN expr_list RPAREN
66 | . funcdecl_expr
67 funcdecl_expr: . FUNC IDENT LPAREN ident_list RPAREN stmt_list END
68 | . FUNC LPAREN ident_list RPAREN stmt_list END
69 | . index_expr
70 index_expr: . expr LBRACKET expr RBRACKET
71 | . expr DOT IDENT
72 | . ref_expr
73 ex_index_expr: . expr LBRACKET expr RBRACKET
74 | . expr DOT IDENT
75 ref_expr: . IDENT
76 | . lit_expr
77 lit_expr: . INT
78 | . MINUS INT
79 | . FLOAT
80 | . STRING
81 | . NONE
82 | . gen_expr
83 gen_expr: . LBRACKET expr_list RBRACKET
84 | . LBRACE assoc_list RBRACE
85 | . paren_expr
86 paren_expr: . LPAREN expr RPAREN
FUNC shift, and go to state 7
NONE shift, and go to state 11
IDENT shift, and go to state 12
INT shift, and go to state 13
FLOAT shift, and go to state 14
STRING shift, and go to state 15
MINUS shift, and go to state 16
BNOT shift, and go to state 17
LNOT shift, and go to state 18
LBRACE shift, and go to state 19
LPAREN shift, and go to state 20
LBRACKET shift, and go to state 21
POUND shift, and go to state 22
expr go to state 43
logic_expr go to state 25
ulogic_expr go to state 26
rel_expr go to state 27
term_expr go to state 28
factor_expr go to state 29
power_expr go to state 30
binary_expr go to state 31
ubinary_expr go to state 32
ulen_expr go to state 33
call_expr go to state 34
funcdecl_expr go to state 35
index_expr go to state 36
ex_index_expr go to state 37
ref_expr go to state 38
lit_expr go to state 39
gen_expr go to state 40
paren_expr go to state 41
State 6
8 stmt: FOR . IDENT IN expr DO stmt_list END
IDENT shift, and go to state 44
State 7
67 funcdecl_expr: FUNC . IDENT LPAREN ident_list RPAREN stmt_list END
68 | FUNC . LPAREN ident_list RPAREN stmt_list END
IDENT shift, and go to state 45
LPAREN shift, and go to state 46
State 8
9 stmt: RETURN . expr
10 | RETURN . [$end, IF, ELSE, WHILE, FOR, FUNC, RETURN, BREAK, CONTINUE, END, NONE, IDENT, INT, FLOAT, STRING, MINUS, BNOT, LNOT, LBRACE, LPAREN, LBRACKET, SEMICOLON, POUND]
14 expr: . IDENT ASSIGN expr
15 | . IDENT ASSIGNPLUS expr
16 | . IDENT ASSIGNMINUS expr
17 | . IDENT ASSIGNSTAR expr
18 | . IDENT ASSIGNSLASH expr
19 | . IDENT ASSIGNDSTAR expr
20 | . IDENT ASSIGNBAND expr
21 | . IDENT ASSIGNBOR expr
22 | . IDENT ASSIGNBXOR expr
23 | . ex_index_expr ASSIGN expr
24 | . ex_index_expr ASSIGNPLUS expr
25 | . ex_index_expr ASSIGNMINUS expr
26 | . ex_index_expr ASSIGNSTAR expr
27 | . ex_index_expr ASSIGNSLASH expr
28 | . ex_index_expr ASSIGNDSTAR expr
29 | . ex_index_expr ASSIGNBAND expr
30 | . ex_index_expr ASSIGNBOR expr
31 | . ex_index_expr ASSIGNBXOR expr
32 | . logic_expr
33 logic_expr: . logic_expr LAND ulogic_expr
34 | . logic_expr LOR ulogic_expr
35 | . ulogic_expr
36 ulogic_expr: . LNOT ulogic_expr
37 | . rel_expr
38 rel_expr: . term_expr EQUAL rel_expr
39 | . term_expr NEQUAL rel_expr
40 | . term_expr LESS rel_expr
41 | . term_expr GREATER rel_expr
42 | . term_expr LESSEQ rel_expr
43 | . term_expr GREATEREQ rel_expr
44 | . term_expr
45 term_expr: . term_expr PLUS factor_expr
46 | . term_expr MINUS factor_expr
47 | . factor_expr
48 factor_expr: . factor_expr STAR power_expr
49 | . factor_expr SLASH power_expr
50 | . factor_expr PERCENT power_expr
51 | . power_expr
52 power_expr: . power_expr DSTAR power_expr
53 | . binary_expr
54 binary_expr: . binary_expr BAND binary_expr
55 | . binary_expr BOR binary_expr
56 | . binary_expr BXOR binary_expr
57 | . binary_expr LSHIFT binary_expr
58 | . binary_expr RSHIFT binary_expr
59 | . ubinary_expr
60 ubinary_expr: . BNOT ubinary_expr
61 | . ulen_expr
62 ulen_expr: . POUND ulen_expr
63 | . call_expr
64 call_expr: . call_expr LPAREN expr_list RPAREN
65 | . call_expr COLON IDENT LPAREN expr_list RPAREN
66 | . funcdecl_expr
67 funcdecl_expr: . FUNC IDENT LPAREN ident_list RPAREN stmt_list END
68 | . FUNC LPAREN ident_list RPAREN stmt_list END
69 | . index_expr
70 index_expr: . expr LBRACKET expr RBRACKET
71 | . expr DOT IDENT
72 | . ref_expr
73 ex_index_expr: . expr LBRACKET expr RBRACKET
74 | . expr DOT IDENT
75 ref_expr: . IDENT
76 | . lit_expr
77 lit_expr: . INT
78 | . MINUS INT
79 | . FLOAT
80 | . STRING
81 | . NONE
82 | . gen_expr
83 gen_expr: . LBRACKET expr_list RBRACKET
84 | . LBRACE assoc_list RBRACE
85 | . paren_expr
86 paren_expr: . LPAREN expr RPAREN
FUNC shift, and go to state 7
NONE shift, and go to state 11
IDENT shift, and go to state 12
INT shift, and go to state 13
FLOAT shift, and go to state 14
STRING shift, and go to state 15
MINUS shift, and go to state 16
BNOT shift, and go to state 17
LNOT shift, and go to state 18
LBRACE shift, and go to state 19
LPAREN shift, and go to state 20
LBRACKET shift, and go to state 21
POUND shift, and go to state 22
FUNC [reduce using rule 10 (stmt)]
NONE [reduce using rule 10 (stmt)]
IDENT [reduce using rule 10 (stmt)]
INT [reduce using rule 10 (stmt)]
FLOAT [reduce using rule 10 (stmt)]
STRING [reduce using rule 10 (stmt)]
MINUS [reduce using rule 10 (stmt)]
BNOT [reduce using rule 10 (stmt)]
LNOT [reduce using rule 10 (stmt)]
LBRACE [reduce using rule 10 (stmt)]
LPAREN [reduce using rule 10 (stmt)]
LBRACKET [reduce using rule 10 (stmt)]
POUND [reduce using rule 10 (stmt)]
$default reduce using rule 10 (stmt)
expr go to state 47
logic_expr go to state 25
ulogic_expr go to state 26
rel_expr go to state 27
term_expr go to state 28
factor_expr go to state 29
power_expr go to state 30
binary_expr go to state 31
ubinary_expr go to state 32
ulen_expr go to state 33
call_expr go to state 34
funcdecl_expr go to state 35
index_expr go to state 36
ex_index_expr go to state 37
ref_expr go to state 38
lit_expr go to state 39
gen_expr go to state 40
paren_expr go to state 41
State 9
11 stmt: BREAK .
$default reduce using rule 11 (stmt)
State 10
12 stmt: CONTINUE .
$default reduce using rule 12 (stmt)
State 11
81 lit_expr: NONE .
$default reduce using rule 81 (lit_expr)
State 12
14 expr: IDENT . ASSIGN expr
15 | IDENT . ASSIGNPLUS expr
16 | IDENT . ASSIGNMINUS expr
17 | IDENT . ASSIGNSTAR expr
18 | IDENT . ASSIGNSLASH expr
19 | IDENT . ASSIGNDSTAR expr
20 | IDENT . ASSIGNBAND expr
21 | IDENT . ASSIGNBOR expr
22 | IDENT . ASSIGNBXOR expr
75 ref_expr: IDENT . [$end, IF, THEN, ELSE, WHILE, FOR, DO, FUNC, RETURN, BREAK, CONTINUE, END, NONE, IDENT, INT, FLOAT, STRING, PLUS, MINUS, STAR, SLASH, PERCENT, DSTAR, BAND, BOR, BXOR, BNOT, LAND, LOR, LNOT, EQUAL, NEQUAL, LESS, GREATER, LESSEQ, GREATEREQ, RSHIFT, LSHIFT, LBRACE, RBRACE, LPAREN, RPAREN, LBRACKET, RBRACKET, DOT, COLON, SEMICOLON, COMMA, POUND]
ASSIGN shift, and go to state 48
ASSIGNPLUS shift, and go to state 49
ASSIGNMINUS shift, and go to state 50
ASSIGNSTAR shift, and go to state 51
ASSIGNSLASH shift, and go to state 52
ASSIGNDSTAR shift, and go to state 53
ASSIGNBAND shift, and go to state 54
ASSIGNBOR shift, and go to state 55
ASSIGNBXOR shift, and go to state 56
$default reduce using rule 75 (ref_expr)
State 13
77 lit_expr: INT .
$default reduce using rule 77 (lit_expr)
State 14
79 lit_expr: FLOAT .
$default reduce using rule 79 (lit_expr)
State 15
80 lit_expr: STRING .
$default reduce using rule 80 (lit_expr)
State 16
78 lit_expr: MINUS . INT
INT shift, and go to state 57
State 17
14 expr: . IDENT ASSIGN expr
15 | . IDENT ASSIGNPLUS expr
16 | . IDENT ASSIGNMINUS expr
17 | . IDENT ASSIGNSTAR expr
18 | . IDENT ASSIGNSLASH expr
19 | . IDENT ASSIGNDSTAR expr
20 | . IDENT ASSIGNBAND expr
21 | . IDENT ASSIGNBOR expr
22 | . IDENT ASSIGNBXOR expr
23 | . ex_index_expr ASSIGN expr
24 | . ex_index_expr ASSIGNPLUS expr
25 | . ex_index_expr ASSIGNMINUS expr
26 | . ex_index_expr ASSIGNSTAR expr
27 | . ex_index_expr ASSIGNSLASH expr
28 | . ex_index_expr ASSIGNDSTAR expr
29 | . ex_index_expr ASSIGNBAND expr
30 | . ex_index_expr ASSIGNBOR expr
31 | . ex_index_expr ASSIGNBXOR expr
32 | . logic_expr
33 logic_expr: . logic_expr LAND ulogic_expr
34 | . logic_expr LOR ulogic_expr
35 | . ulogic_expr
36 ulogic_expr: . LNOT ulogic_expr
37 | . rel_expr
38 rel_expr: . term_expr EQUAL rel_expr
39 | . term_expr NEQUAL rel_expr
40 | . term_expr LESS rel_expr
41 | . term_expr GREATER rel_expr
42 | . term_expr LESSEQ rel_expr
43 | . term_expr GREATEREQ rel_expr
44 | . term_expr
45 term_expr: . term_expr PLUS factor_expr
46 | . term_expr MINUS factor_expr
47 | . factor_expr
48 factor_expr: . factor_expr STAR power_expr
49 | . factor_expr SLASH power_expr
50 | . factor_expr PERCENT power_expr
51 | . power_expr
52 power_expr: . power_expr DSTAR power_expr
53 | . binary_expr
54 binary_expr: . binary_expr BAND binary_expr
55 | . binary_expr BOR binary_expr
56 | . binary_expr BXOR binary_expr
57 | . binary_expr LSHIFT binary_expr
58 | . binary_expr RSHIFT binary_expr
59 | . ubinary_expr
60 ubinary_expr: . BNOT ubinary_expr
60 | BNOT . ubinary_expr
61 | . ulen_expr
62 ulen_expr: . POUND ulen_expr
63 | . call_expr
64 call_expr: . call_expr LPAREN expr_list RPAREN
65 | . call_expr COLON IDENT LPAREN expr_list RPAREN
66 | . funcdecl_expr
67 funcdecl_expr: . FUNC IDENT LPAREN ident_list RPAREN stmt_list END
68 | . FUNC LPAREN ident_list RPAREN stmt_list END
69 | . index_expr
70 index_expr: . expr LBRACKET expr RBRACKET
71 | . expr DOT IDENT
72 | . ref_expr
73 ex_index_expr: . expr LBRACKET expr RBRACKET
74 | . expr DOT IDENT
75 ref_expr: . IDENT
76 | . lit_expr
77 lit_expr: . INT
78 | . MINUS INT
79 | . FLOAT
80 | . STRING
81 | . NONE
82 | . gen_expr
83 gen_expr: . LBRACKET expr_list RBRACKET
84 | . LBRACE assoc_list RBRACE
85 | . paren_expr
86 paren_expr: . LPAREN expr RPAREN
FUNC shift, and go to state 7
NONE shift, and go to state 11
IDENT shift, and go to state 12
INT shift, and go to state 13
FLOAT shift, and go to state 14
STRING shift, and go to state 15
MINUS shift, and go to state 16
BNOT shift, and go to state 17
LNOT shift, and go to state 18
LBRACE shift, and go to state 19
LPAREN shift, and go to state 20
LBRACKET shift, and go to state 21
POUND shift, and go to state 22
expr go to state 58
logic_expr go to state 25
ulogic_expr go to state 26
rel_expr go to state 27
term_expr go to state 28
factor_expr go to state 29
power_expr go to state 30
binary_expr go to state 31
ubinary_expr go to state 59
ulen_expr go to state 33
call_expr go to state 34
funcdecl_expr go to state 35
index_expr go to state 36
ex_index_expr go to state 37
ref_expr go to state 38
lit_expr go to state 39
gen_expr go to state 40
paren_expr go to state 41
State 18
14 expr: . IDENT ASSIGN expr
15 | . IDENT ASSIGNPLUS expr
16 | . IDENT ASSIGNMINUS expr
17 | . IDENT ASSIGNSTAR expr
18 | . IDENT ASSIGNSLASH expr
19 | . IDENT ASSIGNDSTAR expr
20 | . IDENT ASSIGNBAND expr
21 | . IDENT ASSIGNBOR expr
22 | . IDENT ASSIGNBXOR expr
23 | . ex_index_expr ASSIGN expr
24 | . ex_index_expr ASSIGNPLUS expr
25 | . ex_index_expr ASSIGNMINUS expr
26 | . ex_index_expr ASSIGNSTAR expr
27 | . ex_index_expr ASSIGNSLASH expr
28 | . ex_index_expr ASSIGNDSTAR expr
29 | . ex_index_expr ASSIGNBAND expr
30 | . ex_index_expr ASSIGNBOR expr
31 | . ex_index_expr ASSIGNBXOR expr
32 | . logic_expr
33 logic_expr: . logic_expr LAND ulogic_expr
34 | . logic_expr LOR ulogic_expr
35 | . ulogic_expr
36 ulogic_expr: . LNOT ulogic_expr
36 | LNOT . ulogic_expr
37 | . rel_expr
38 rel_expr: . term_expr EQUAL rel_expr
39 | . term_expr NEQUAL rel_expr
40 | . term_expr LESS rel_expr
41 | . term_expr GREATER rel_expr
42 | . term_expr LESSEQ rel_expr
43 | . term_expr GREATEREQ rel_expr
44 | . term_expr
45 term_expr: . term_expr PLUS factor_expr
46 | . term_expr MINUS factor_expr
47 | . factor_expr
48 factor_expr: . factor_expr STAR power_expr
49 | . factor_expr SLASH power_expr
50 | . factor_expr PERCENT power_expr
51 | . power_expr
52 power_expr: . power_expr DSTAR power_expr
53 | . binary_expr
54 binary_expr: . binary_expr BAND binary_expr
55 | . binary_expr BOR binary_expr
56 | . binary_expr BXOR binary_expr
57 | . binary_expr LSHIFT binary_expr
58 | . binary_expr RSHIFT binary_expr
59 | . ubinary_expr
60 ubinary_expr: . BNOT ubinary_expr
61 | . ulen_expr
62 ulen_expr: . POUND ulen_expr
63 | . call_expr
64 call_expr: . call_expr LPAREN expr_list RPAREN
65 | . call_expr COLON IDENT LPAREN expr_list RPAREN
66 | . funcdecl_expr
67 funcdecl_expr: . FUNC IDENT LPAREN ident_list RPAREN stmt_list END
68 | . FUNC LPAREN ident_list RPAREN stmt_list END
69 | . index_expr
70 index_expr: . expr LBRACKET expr RBRACKET
71 | . expr DOT IDENT
72 | . ref_expr
73 ex_index_expr: . expr LBRACKET expr RBRACKET
74 | . expr DOT IDENT
75 ref_expr: . IDENT
76 | . lit_expr
77 lit_expr: . INT
78 | . MINUS INT
79 | . FLOAT
80 | . STRING
81 | . NONE
82 | . gen_expr
83 gen_expr: . LBRACKET expr_list RBRACKET
84 | . LBRACE assoc_list RBRACE
85 | . paren_expr
86 paren_expr: . LPAREN expr RPAREN
FUNC shift, and go to state 7
NONE shift, and go to state 11
IDENT shift, and go to state 12
INT shift, and go to state 13
FLOAT shift, and go to state 14
STRING shift, and go to state 15
MINUS shift, and go to state 16
BNOT shift, and go to state 17
LNOT shift, and go to state 18
LBRACE shift, and go to state 19
LPAREN shift, and go to state 20
LBRACKET shift, and go to state 21
POUND shift, and go to state 22
expr go to state 58
logic_expr go to state 25
ulogic_expr go to state 60
rel_expr go to state 27
term_expr go to state 28
factor_expr go to state 29
power_expr go to state 30
binary_expr go to state 31
ubinary_expr go to state 32
ulen_expr go to state 33
call_expr go to state 34
funcdecl_expr go to state 35
index_expr go to state 36
ex_index_expr go to state 37
ref_expr go to state 38
lit_expr go to state 39
gen_expr go to state 40
paren_expr go to state 41
State 19
84 gen_expr: LBRACE . assoc_list RBRACE
95 assoc_list: . %empty [IDENT, RBRACE, LBRACKET, COMMA]
96 | . assoc_item
97 | . assoc_list COMMA
98 | . assoc_list assoc_item
99 assoc_item: . LBRACKET expr RBRACKET ASSIGN expr
100 | . IDENT ASSIGN expr
IDENT shift, and go to state 61
LBRACKET shift, and go to state 62
IDENT [reduce using rule 95 (assoc_list)]
LBRACKET [reduce using rule 95 (assoc_list)]
$default reduce using rule 95 (assoc_list)
assoc_list go to state 63
assoc_item go to state 64
State 20
14 expr: . IDENT ASSIGN expr
15 | . IDENT ASSIGNPLUS expr
16 | . IDENT ASSIGNMINUS expr
17 | . IDENT ASSIGNSTAR expr
18 | . IDENT ASSIGNSLASH expr
19 | . IDENT ASSIGNDSTAR expr
20 | . IDENT ASSIGNBAND expr
21 | . IDENT ASSIGNBOR expr
22 | . IDENT ASSIGNBXOR expr
23 | . ex_index_expr ASSIGN expr
24 | . ex_index_expr ASSIGNPLUS expr
25 | . ex_index_expr ASSIGNMINUS expr
26 | . ex_index_expr ASSIGNSTAR expr
27 | . ex_index_expr ASSIGNSLASH expr
28 | . ex_index_expr ASSIGNDSTAR expr
29 | . ex_index_expr ASSIGNBAND expr
30 | . ex_index_expr ASSIGNBOR expr
31 | . ex_index_expr ASSIGNBXOR expr
32 | . logic_expr
33 logic_expr: . logic_expr LAND ulogic_expr
34 | . logic_expr LOR ulogic_expr
35 | . ulogic_expr
36 ulogic_expr: . LNOT ulogic_expr
37 | . rel_expr
38 rel_expr: . term_expr EQUAL rel_expr
39 | . term_expr NEQUAL rel_expr
40 | . term_expr LESS rel_expr
41 | . term_expr GREATER rel_expr
42 | . term_expr LESSEQ rel_expr
43 | . term_expr GREATEREQ rel_expr
44 | . term_expr
45 term_expr: . term_expr PLUS factor_expr
46 | . term_expr MINUS factor_expr
47 | . factor_expr
48 factor_expr: . factor_expr STAR power_expr
49 | . factor_expr SLASH power_expr
50 | . factor_expr PERCENT power_expr
51 | . power_expr
52 power_expr: . power_expr DSTAR power_expr
53 | . binary_expr
54 binary_expr: . binary_expr BAND binary_expr
55 | . binary_expr BOR binary_expr
56 | . binary_expr BXOR binary_expr
57 | . binary_expr LSHIFT binary_expr
58 | . binary_expr RSHIFT binary_expr
59 | . ubinary_expr
60 ubinary_expr: . BNOT ubinary_expr
61 | . ulen_expr
62 ulen_expr: . POUND ulen_expr
63 | . call_expr
64 call_expr: . call_expr LPAREN expr_list RPAREN
65 | . call_expr COLON IDENT LPAREN expr_list RPAREN
66 | . funcdecl_expr
67 funcdecl_expr: . FUNC IDENT LPAREN ident_list RPAREN stmt_list END
68 | . FUNC LPAREN ident_list RPAREN stmt_list END
69 | . index_expr
70 index_expr: . expr LBRACKET expr RBRACKET
71 | . expr DOT IDENT
72 | . ref_expr
73 ex_index_expr: . expr LBRACKET expr RBRACKET
74 | . expr DOT IDENT
75 ref_expr: . IDENT
76 | . lit_expr
77 lit_expr: . INT
78 | . MINUS INT
79 | . FLOAT
80 | . STRING
81 | . NONE
82 | . gen_expr
83 gen_expr: . LBRACKET expr_list RBRACKET
84 | . LBRACE assoc_list RBRACE
85 | . paren_expr
86 paren_expr: . LPAREN expr RPAREN
86 | LPAREN . expr RPAREN
FUNC shift, and go to state 7
NONE shift, and go to state 11
IDENT shift, and go to state 12
INT shift, and go to state 13
FLOAT shift, and go to state 14
STRING shift, and go to state 15
MINUS shift, and go to state 16
BNOT shift, and go to state 17
LNOT shift, and go to state 18
LBRACE shift, and go to state 19
LPAREN shift, and go to state 20
LBRACKET shift, and go to state 21
POUND shift, and go to state 22
expr go to state 65
logic_expr go to state 25
ulogic_expr go to state 26
rel_expr go to state 27
term_expr go to state 28
factor_expr go to state 29
power_expr go to state 30
binary_expr go to state 31
ubinary_expr go to state 32
ulen_expr go to state 33
call_expr go to state 34
funcdecl_expr go to state 35
index_expr go to state 36
ex_index_expr go to state 37
ref_expr go to state 38
lit_expr go to state 39
gen_expr go to state 40
paren_expr go to state 41
State 21
14 expr: . IDENT ASSIGN expr
15 | . IDENT ASSIGNPLUS expr
16 | . IDENT ASSIGNMINUS expr
17 | . IDENT ASSIGNSTAR expr
18 | . IDENT ASSIGNSLASH expr
19 | . IDENT ASSIGNDSTAR expr
20 | . IDENT ASSIGNBAND expr
21 | . IDENT ASSIGNBOR expr
22 | . IDENT ASSIGNBXOR expr
23 | . ex_index_expr ASSIGN expr
24 | . ex_index_expr ASSIGNPLUS expr
25 | . ex_index_expr ASSIGNMINUS expr
26 | . ex_index_expr ASSIGNSTAR expr
27 | . ex_index_expr ASSIGNSLASH expr
28 | . ex_index_expr ASSIGNDSTAR expr
29 | . ex_index_expr ASSIGNBAND expr
30 | . ex_index_expr ASSIGNBOR expr
31 | . ex_index_expr ASSIGNBXOR expr
32 | . logic_expr
33 logic_expr: . logic_expr LAND ulogic_expr
34 | . logic_expr LOR ulogic_expr
35 | . ulogic_expr
36 ulogic_expr: . LNOT ulogic_expr
37 | . rel_expr
38 rel_expr: . term_expr EQUAL rel_expr
39 | . term_expr NEQUAL rel_expr
40 | . term_expr LESS rel_expr
41 | . term_expr GREATER rel_expr
42 | . term_expr LESSEQ rel_expr
43 | . term_expr GREATEREQ rel_expr
44 | . term_expr
45 term_expr: . term_expr PLUS factor_expr
46 | . term_expr MINUS factor_expr
47 | . factor_expr
48 factor_expr: . factor_expr STAR power_expr
49 | . factor_expr SLASH power_expr
50 | . factor_expr PERCENT power_expr
51 | . power_expr
52 power_expr: . power_expr DSTAR power_expr
53 | . binary_expr
54 binary_expr: . binary_expr BAND binary_expr
55 | . binary_expr BOR binary_expr
56 | . binary_expr BXOR binary_expr
57 | . binary_expr LSHIFT binary_expr
58 | . binary_expr RSHIFT binary_expr
59 | . ubinary_expr
60 ubinary_expr: . BNOT ubinary_expr
61 | . ulen_expr
62 ulen_expr: . POUND ulen_expr
63 | . call_expr
64 call_expr: . call_expr LPAREN expr_list RPAREN
65 | . call_expr COLON IDENT LPAREN expr_list RPAREN
66 | . funcdecl_expr
67 funcdecl_expr: . FUNC IDENT LPAREN ident_list RPAREN stmt_list END
68 | . FUNC LPAREN ident_list RPAREN stmt_list END
69 | . index_expr
70 index_expr: . expr LBRACKET expr RBRACKET
71 | . expr DOT IDENT
72 | . ref_expr
73 ex_index_expr: . expr LBRACKET expr RBRACKET
74 | . expr DOT IDENT
75 ref_expr: . IDENT
76 | . lit_expr
77 lit_expr: . INT
78 | . MINUS INT
79 | . FLOAT
80 | . STRING
81 | . NONE
82 | . gen_expr
83 gen_expr: . LBRACKET expr_list RBRACKET
83 | LBRACKET . expr_list RBRACKET
84 | . LBRACE assoc_list RBRACE
85 | . paren_expr
86 paren_expr: . LPAREN expr RPAREN
87 expr_list: . %empty [FUNC, NONE, IDENT, INT, FLOAT, STRING, MINUS, BNOT, LNOT, LBRACE, LPAREN, LBRACKET, RBRACKET, COMMA, POUND]
88 | . expr
89 | . expr_list COMMA
90 | . expr_list expr
FUNC shift, and go to state 7
NONE shift, and go to state 11
IDENT shift, and go to state 12
INT shift, and go to state 13
FLOAT shift, and go to state 14
STRING shift, and go to state 15
MINUS shift, and go to state 16
BNOT shift, and go to state 17
LNOT shift, and go to state 18
LBRACE shift, and go to state 19
LPAREN shift, and go to state 20
LBRACKET shift, and go to state 21
POUND shift, and go to state 22
FUNC [reduce using rule 87 (expr_list)]
NONE [reduce using rule 87 (expr_list)]
IDENT [reduce using rule 87 (expr_list)]
INT [reduce using rule 87 (expr_list)]
FLOAT [reduce using rule 87 (expr_list)]
STRING [reduce using rule 87 (expr_list)]
MINUS [reduce using rule 87 (expr_list)]
BNOT [reduce using rule 87 (expr_list)]
LNOT [reduce using rule 87 (expr_list)]
LBRACE [reduce using rule 87 (expr_list)]
LPAREN [reduce using rule 87 (expr_list)]
LBRACKET [reduce using rule 87 (expr_list)]
POUND [reduce using rule 87 (expr_list)]
$default reduce using rule 87 (expr_list)
expr go to state 66
logic_expr go to state 25
ulogic_expr go to state 26
rel_expr go to state 27
term_expr go to state 28
factor_expr go to state 29
power_expr go to state 30
binary_expr go to state 31
ubinary_expr go to state 32
ulen_expr go to state 33
call_expr go to state 34
funcdecl_expr go to state 35
index_expr go to state 36
ex_index_expr go to state 37
ref_expr go to state 38
lit_expr go to state 39
gen_expr go to state 40
paren_expr go to state 41
expr_list go to state 67
State 22
14 expr: . IDENT ASSIGN expr
15 | . IDENT ASSIGNPLUS expr
16 | . IDENT ASSIGNMINUS expr
17 | . IDENT ASSIGNSTAR expr
18 | . IDENT ASSIGNSLASH expr
19 | . IDENT ASSIGNDSTAR expr
20 | . IDENT ASSIGNBAND expr
21 | . IDENT ASSIGNBOR expr
22 | . IDENT ASSIGNBXOR expr
23 | . ex_index_expr ASSIGN expr
24 | . ex_index_expr ASSIGNPLUS expr
25 | . ex_index_expr ASSIGNMINUS expr
26 | . ex_index_expr ASSIGNSTAR expr
27 | . ex_index_expr ASSIGNSLASH expr
28 | . ex_index_expr ASSIGNDSTAR expr
29 | . ex_index_expr ASSIGNBAND expr
30 | . ex_index_expr ASSIGNBOR expr
31 | . ex_index_expr ASSIGNBXOR expr
32 | . logic_expr
33 logic_expr: . logic_expr LAND ulogic_expr
34 | . logic_expr LOR ulogic_expr
35 | . ulogic_expr
36 ulogic_expr: . LNOT ulogic_expr
37 | . rel_expr
38 rel_expr: . term_expr EQUAL rel_expr
39 | . term_expr NEQUAL rel_expr
40 | . term_expr LESS rel_expr
41 | . term_expr GREATER rel_expr
42 | . term_expr LESSEQ rel_expr
43 | . term_expr GREATEREQ rel_expr
44 | . term_expr
45 term_expr: . term_expr PLUS factor_expr
46 | . term_expr MINUS factor_expr
47 | . factor_expr
48 factor_expr: . factor_expr STAR power_expr
49 | . factor_expr SLASH power_expr
50 | . factor_expr PERCENT power_expr
51 | . power_expr
52 power_expr: . power_expr DSTAR power_expr
53 | . binary_expr
54 binary_expr: . binary_expr BAND binary_expr
55 | . binary_expr BOR binary_expr
56 | . binary_expr BXOR binary_expr
57 | . binary_expr LSHIFT binary_expr
58 | . binary_expr RSHIFT binary_expr
59 | . ubinary_expr
60 ubinary_expr: . BNOT ubinary_expr
61 | . ulen_expr
62 ulen_expr: . POUND ulen_expr
62 | POUND . ulen_expr
63 | . call_expr
64 call_expr: . call_expr LPAREN expr_list RPAREN
65 | . call_expr COLON IDENT LPAREN expr_list RPAREN
66 | . funcdecl_expr
67 funcdecl_expr: . FUNC IDENT LPAREN ident_list RPAREN stmt_list END
68 | . FUNC LPAREN ident_list RPAREN stmt_list END
69 | . index_expr
70 index_expr: . expr LBRACKET expr RBRACKET
71 | . expr DOT IDENT
72 | . ref_expr
73 ex_index_expr: . expr LBRACKET expr RBRACKET
74 | . expr DOT IDENT
75 ref_expr: . IDENT
76 | . lit_expr
77 lit_expr: . INT
78 | . MINUS INT
79 | . FLOAT
80 | . STRING
81 | . NONE
82 | . gen_expr
83 gen_expr: . LBRACKET expr_list RBRACKET
84 | . LBRACE assoc_list RBRACE
85 | . paren_expr
86 paren_expr: . LPAREN expr RPAREN
FUNC shift, and go to state 7
NONE shift, and go to state 11
IDENT shift, and go to state 12
INT shift, and go to state 13
FLOAT shift, and go to state 14
STRING shift, and go to state 15
MINUS shift, and go to state 16
BNOT shift, and go to state 17
LNOT shift, and go to state 18
LBRACE shift, and go to state 19
LPAREN shift, and go to state 20
LBRACKET shift, and go to state 21
POUND shift, and go to state 22
expr go to state 58
logic_expr go to state 25
ulogic_expr go to state 26
rel_expr go to state 27
term_expr go to state 28
factor_expr go to state 29
power_expr go to state 30
binary_expr go to state 31
ubinary_expr go to state 32
ulen_expr go to state 68
call_expr go to state 34
funcdecl_expr go to state 35
index_expr go to state 36
ex_index_expr go to state 37
ref_expr go to state 38
lit_expr go to state 39
gen_expr go to state 40
paren_expr go to state 41
State 23
2 stmt_list: stmt_list stmt . [$end, IF, ELSE, WHILE, FOR, FUNC, RETURN, BREAK, CONTINUE, END, NONE, IDENT, INT, FLOAT, STRING, MINUS, BNOT, LNOT, LBRACE, LPAREN, LBRACKET, POUND]
13 stmt: stmt . SEMICOLON
SEMICOLON shift, and go to state 69
$default reduce using rule 2 (stmt_list)
State 24
4 stmt: expr . [$end, IF, ELSE, WHILE, FOR, FUNC, RETURN, BREAK, CONTINUE, END, NONE, IDENT, INT, FLOAT, STRING, MINUS, BNOT, LNOT, LBRACE, LPAREN, LBRACKET, SEMICOLON, POUND]
70 index_expr: expr . LBRACKET expr RBRACKET
71 | expr . DOT IDENT
73 ex_index_expr: expr . LBRACKET expr RBRACKET
74 | expr . DOT IDENT
LBRACKET shift, and go to state 70
DOT shift, and go to state 71
LBRACKET [reduce using rule 4 (stmt)]
$default reduce using rule 4 (stmt)
State 25
32 expr: logic_expr . [$end, IF, THEN, ELSE, WHILE, FOR, DO, FUNC, RETURN, BREAK, CONTINUE, END, NONE, IDENT, INT, FLOAT, STRING, MINUS, BNOT, LNOT, LBRACE, RBRACE, LPAREN, RPAREN, LBRACKET, RBRACKET, DOT, SEMICOLON, COMMA, POUND]
33 logic_expr: logic_expr . LAND ulogic_expr
34 | logic_expr . LOR ulogic_expr
LAND shift, and go to state 72
LOR shift, and go to state 73
$default reduce using rule 32 (expr)
State 26
35 logic_expr: ulogic_expr .
$default reduce using rule 35 (logic_expr)
State 27
37 ulogic_expr: rel_expr .
$default reduce using rule 37 (ulogic_expr)
State 28
38 rel_expr: term_expr . EQUAL rel_expr
39 | term_expr . NEQUAL rel_expr
40 | term_expr . LESS rel_expr
41 | term_expr . GREATER rel_expr
42 | term_expr . LESSEQ rel_expr
43 | term_expr . GREATEREQ rel_expr
44 | term_expr . [$end, IF, THEN, ELSE, WHILE, FOR, DO, FUNC, RETURN, BREAK, CONTINUE, END, NONE, IDENT, INT, FLOAT, STRING, MINUS, BNOT, LAND, LOR, LNOT, LBRACE, RBRACE, LPAREN, RPAREN, LBRACKET, RBRACKET, DOT, SEMICOLON, COMMA, POUND]
45 term_expr: term_expr . PLUS factor_expr
46 | term_expr . MINUS factor_expr
PLUS shift, and go to state 74
MINUS shift, and go to state 75
EQUAL shift, and go to state 76
NEQUAL shift, and go to state 77
LESS shift, and go to state 78
GREATER shift, and go to state 79
LESSEQ shift, and go to state 80
GREATEREQ shift, and go to state 81
MINUS [reduce using rule 44 (rel_expr)]
$default reduce using rule 44 (rel_expr)
State 29
47 term_expr: factor_expr . [$end, IF, THEN, ELSE, WHILE, FOR, DO, FUNC, RETURN, BREAK, CONTINUE, END, NONE, IDENT, INT, FLOAT, STRING, PLUS, MINUS, BNOT, LAND, LOR, LNOT, EQUAL, NEQUAL, LESS, GREATER, LESSEQ, GREATEREQ, LBRACE, RBRACE, LPAREN, RPAREN, LBRACKET, RBRACKET, DOT, SEMICOLON, COMMA, POUND]
48 factor_expr: factor_expr . STAR power_expr
49 | factor_expr . SLASH power_expr
50 | factor_expr . PERCENT power_expr
STAR shift, and go to state 82
SLASH shift, and go to state 83
PERCENT shift, and go to state 84
$default reduce using rule 47 (term_expr)
State 30
51 factor_expr: power_expr . [$end, IF, THEN, ELSE, WHILE, FOR, DO, FUNC, RETURN, BREAK, CONTINUE, END, NONE, IDENT, INT, FLOAT, STRING, PLUS, MINUS, STAR, SLASH, PERCENT, BNOT, LAND, LOR, LNOT, EQUAL, NEQUAL, LESS, GREATER, LESSEQ, GREATEREQ, LBRACE, RBRACE, LPAREN, RPAREN, LBRACKET, RBRACKET, DOT, SEMICOLON, COMMA, POUND]
52 power_expr: power_expr . DSTAR power_expr
DSTAR shift, and go to state 85
$default reduce using rule 51 (factor_expr)
State 31
53 power_expr: binary_expr . [$end, IF, THEN, ELSE, WHILE, FOR, DO, FUNC, RETURN, BREAK, CONTINUE, END, NONE, IDENT, INT, FLOAT, STRING, PLUS, MINUS, STAR, SLASH, PERCENT, DSTAR, BNOT, LAND, LOR, LNOT, EQUAL, NEQUAL, LESS, GREATER, LESSEQ, GREATEREQ, LBRACE, RBRACE, LPAREN, RPAREN, LBRACKET, RBRACKET, DOT, SEMICOLON, COMMA, POUND]
54 binary_expr: binary_expr . BAND binary_expr
55 | binary_expr . BOR binary_expr
56 | binary_expr . BXOR binary_expr
57 | binary_expr . LSHIFT binary_expr
58 | binary_expr . RSHIFT binary_expr
BAND shift, and go to state 86
BOR shift, and go to state 87
BXOR shift, and go to state 88
RSHIFT shift, and go to state 89
LSHIFT shift, and go to state 90
$default reduce using rule 53 (power_expr)
State 32
59 binary_expr: ubinary_expr .
$default reduce using rule 59 (binary_expr)
State 33
61 ubinary_expr: ulen_expr .
$default reduce using rule 61 (ubinary_expr)
State 34
63 ulen_expr: call_expr . [$end, IF, THEN, ELSE, WHILE, FOR, DO, FUNC, RETURN, BREAK, CONTINUE, END, NONE, IDENT, INT, FLOAT, STRING, PLUS, MINUS, STAR, SLASH, PERCENT, DSTAR, BAND, BOR, BXOR, BNOT, LAND, LOR, LNOT, EQUAL, NEQUAL, LESS, GREATER, LESSEQ, GREATEREQ, RSHIFT, LSHIFT, LBRACE, RBRACE, LPAREN, RPAREN, LBRACKET, RBRACKET, DOT, SEMICOLON, COMMA, POUND]
64 call_expr: call_expr . LPAREN expr_list RPAREN
65 | call_expr . COLON IDENT LPAREN expr_list RPAREN
LPAREN shift, and go to state 91
COLON shift, and go to state 92
LPAREN [reduce using rule 63 (ulen_expr)]
$default reduce using rule 63 (ulen_expr)
State 35
66 call_expr: funcdecl_expr .
$default reduce using rule 66 (call_expr)
State 36
69 funcdecl_expr: index_expr .
$default reduce using rule 69 (funcdecl_expr)
State 37
23 expr: ex_index_expr . ASSIGN expr
24 | ex_index_expr . ASSIGNPLUS expr
25 | ex_index_expr . ASSIGNMINUS expr
26 | ex_index_expr . ASSIGNSTAR expr
27 | ex_index_expr . ASSIGNSLASH expr
28 | ex_index_expr . ASSIGNDSTAR expr
29 | ex_index_expr . ASSIGNBAND expr
30 | ex_index_expr . ASSIGNBOR expr
31 | ex_index_expr . ASSIGNBXOR expr
ASSIGN shift, and go to state 93
ASSIGNPLUS shift, and go to state 94
ASSIGNMINUS shift, and go to state 95
ASSIGNSTAR shift, and go to state 96
ASSIGNSLASH shift, and go to state 97
ASSIGNDSTAR shift, and go to state 98
ASSIGNBAND shift, and go to state 99
ASSIGNBOR shift, and go to state 100
ASSIGNBXOR shift, and go to state 101
State 38
72 index_expr: ref_expr .
$default reduce using rule 72 (index_expr)
State 39
76 ref_expr: lit_expr .
$default reduce using rule 76 (ref_expr)
State 40
82 lit_expr: gen_expr .
$default reduce using rule 82 (lit_expr)
State 41
85 gen_expr: paren_expr .
$default reduce using rule 85 (gen_expr)
State 42
5 stmt: IF expr . THEN stmt_list END
6 | IF expr . THEN stmt_list ELSE stmt_list END
70 index_expr: expr . LBRACKET expr RBRACKET
71 | expr . DOT IDENT
73 ex_index_expr: expr . LBRACKET expr RBRACKET
74 | expr . DOT IDENT
THEN shift, and go to state 102
LBRACKET shift, and go to state 70
DOT shift, and go to state 71
State 43
7 stmt: WHILE expr . DO stmt_list END
70 index_expr: expr . LBRACKET expr RBRACKET
71 | expr . DOT IDENT
73 ex_index_expr: expr . LBRACKET expr RBRACKET
74 | expr . DOT IDENT
DO shift, and go to state 103
LBRACKET shift, and go to state 70
DOT shift, and go to state 71
State 44
8 stmt: FOR IDENT . IN expr DO stmt_list END
IN shift, and go to state 104
State 45
67 funcdecl_expr: FUNC IDENT . LPAREN ident_list RPAREN stmt_list END
LPAREN shift, and go to state 105
State 46
68 funcdecl_expr: FUNC LPAREN . ident_list RPAREN stmt_list END
91 ident_list: . %empty [IDENT, RPAREN, COMMA]
92 | . IDENT
93 | . ident_list COMMA
94 | . ident_list IDENT
IDENT shift, and go to state 106
IDENT [reduce using rule 91 (ident_list)]
$default reduce using rule 91 (ident_list)
ident_list go to state 107
State 47
9 stmt: RETURN expr . [$end, IF, ELSE, WHILE, FOR, FUNC, RETURN, BREAK, CONTINUE, END, NONE, IDENT, INT, FLOAT, STRING, MINUS, BNOT, LNOT, LBRACE, LPAREN, LBRACKET, SEMICOLON, POUND]
70 index_expr: expr . LBRACKET expr RBRACKET
71 | expr . DOT IDENT
73 ex_index_expr: expr . LBRACKET expr RBRACKET
74 | expr . DOT IDENT
LBRACKET shift, and go to state 70
DOT shift, and go to state 71
LBRACKET [reduce using rule 9 (stmt)]
$default reduce using rule 9 (stmt)
State 48
14 expr: . IDENT ASSIGN expr
14 | IDENT ASSIGN . expr
15 | . IDENT ASSIGNPLUS expr
16 | . IDENT ASSIGNMINUS expr
17 | . IDENT ASSIGNSTAR expr
18 | . IDENT ASSIGNSLASH expr
19 | . IDENT ASSIGNDSTAR expr
20 | . IDENT ASSIGNBAND expr
21 | . IDENT ASSIGNBOR expr
22 | . IDENT ASSIGNBXOR expr
23 | . ex_index_expr ASSIGN expr
24 | . ex_index_expr ASSIGNPLUS expr
25 | . ex_index_expr ASSIGNMINUS expr
26 | . ex_index_expr ASSIGNSTAR expr
27 | . ex_index_expr ASSIGNSLASH expr
28 | . ex_index_expr ASSIGNDSTAR expr
29 | . ex_index_expr ASSIGNBAND expr
30 | . ex_index_expr ASSIGNBOR expr
31 | . ex_index_expr ASSIGNBXOR expr
32 | . logic_expr
33 logic_expr: . logic_expr LAND ulogic_expr
34 | . logic_expr LOR ulogic_expr
35 | . ulogic_expr
36 ulogic_expr: . LNOT ulogic_expr
37 | . rel_expr
38 rel_expr: . term_expr EQUAL rel_expr
39 | . term_expr NEQUAL rel_expr
40 | . term_expr LESS rel_expr
41 | . term_expr GREATER rel_expr
42 | . term_expr LESSEQ rel_expr
43 | . term_expr GREATEREQ rel_expr
44 | . term_expr
45 term_expr: . term_expr PLUS factor_expr
46 | . term_expr MINUS factor_expr
47 | . factor_expr
48 factor_expr: . factor_expr STAR power_expr
49 | . factor_expr SLASH power_expr
50 | . factor_expr PERCENT power_expr
51 | . power_expr
52 power_expr: . power_expr DSTAR power_expr
53 | . binary_expr
54 binary_expr: . binary_expr BAND binary_expr
55 | . binary_expr BOR binary_expr
56 | . binary_expr BXOR binary_expr
57 | . binary_expr LSHIFT binary_expr
58 | . binary_expr RSHIFT binary_expr
59 | . ubinary_expr
60 ubinary_expr: . BNOT ubinary_expr
61 | . ulen_expr
62 ulen_expr: . POUND ulen_expr
63 | . call_expr
64 call_expr: . call_expr LPAREN expr_list RPAREN
65 | . call_expr COLON IDENT LPAREN expr_list RPAREN
66 | . funcdecl_expr
67 funcdecl_expr: . FUNC IDENT LPAREN ident_list RPAREN stmt_list END
68 | . FUNC LPAREN ident_list RPAREN stmt_list END
69 | . index_expr
70 index_expr: . expr LBRACKET expr RBRACKET
71 | . expr DOT IDENT
72 | . ref_expr
73 ex_index_expr: . expr LBRACKET expr RBRACKET
74 | . expr DOT IDENT
75 ref_expr: . IDENT
76 | . lit_expr
77 lit_expr: . INT
78 | . MINUS INT
79 | . FLOAT
80 | . STRING
81 | . NONE
82 | . gen_expr
83 gen_expr: . LBRACKET expr_list RBRACKET
84 | . LBRACE assoc_list RBRACE
85 | . paren_expr
86 paren_expr: . LPAREN expr RPAREN
FUNC shift, and go to state 7
NONE shift, and go to state 11
IDENT shift, and go to state 12
INT shift, and go to state 13
FLOAT shift, and go to state 14
STRING shift, and go to state 15
MINUS shift, and go to state 16
BNOT shift, and go to state 17
LNOT shift, and go to state 18
LBRACE shift, and go to state 19
LPAREN shift, and go to state 20
LBRACKET shift, and go to state 21
POUND shift, and go to state 22
expr go to state 108
logic_expr go to state 25
ulogic_expr go to state 26
rel_expr go to state 27
term_expr go to state 28
factor_expr go to state 29
power_expr go to state 30
binary_expr go to state 31
ubinary_expr go to state 32
ulen_expr go to state 33
call_expr go to state 34
funcdecl_expr go to state 35
index_expr go to state 36
ex_index_expr go to state 37
ref_expr go to state 38
lit_expr go to state 39
gen_expr go to state 40
paren_expr go to state 41
State 49
14 expr: . IDENT ASSIGN expr
15 | . IDENT ASSIGNPLUS expr
15 | IDENT ASSIGNPLUS . expr
16 | . IDENT ASSIGNMINUS expr
17 | . IDENT ASSIGNSTAR expr
18 | . IDENT ASSIGNSLASH expr
19 | . IDENT ASSIGNDSTAR expr
20 | . IDENT ASSIGNBAND expr
21 | . IDENT ASSIGNBOR expr
22 | . IDENT ASSIGNBXOR expr
23 | . ex_index_expr ASSIGN expr
24 | . ex_index_expr ASSIGNPLUS expr
25 | . ex_index_expr ASSIGNMINUS expr
26 | . ex_index_expr ASSIGNSTAR expr
27 | . ex_index_expr ASSIGNSLASH expr
28 | . ex_index_expr ASSIGNDSTAR expr
29 | . ex_index_expr ASSIGNBAND expr
30 | . ex_index_expr ASSIGNBOR expr
31 | . ex_index_expr ASSIGNBXOR expr
32 | . logic_expr
33 logic_expr: . logic_expr LAND ulogic_expr
34 | . logic_expr LOR ulogic_expr
35 | . ulogic_expr
36 ulogic_expr: . LNOT ulogic_expr
37 | . rel_expr
38 rel_expr: . term_expr EQUAL rel_expr
39 | . term_expr NEQUAL rel_expr
40 | . term_expr LESS rel_expr
41 | . term_expr GREATER rel_expr
42 | . term_expr LESSEQ rel_expr
43 | . term_expr GREATEREQ rel_expr
44 | . term_expr
45 term_expr: . term_expr PLUS factor_expr
46 | . term_expr MINUS factor_expr
47 | . factor_expr
48 factor_expr: . factor_expr STAR power_expr
49 | . factor_expr SLASH power_expr
50 | . factor_expr PERCENT power_expr
51 | . power_expr
52 power_expr: . power_expr DSTAR power_expr
53 | . binary_expr
54 binary_expr: . binary_expr BAND binary_expr
55 | . binary_expr BOR binary_expr
56 | . binary_expr BXOR binary_expr
57 | . binary_expr LSHIFT binary_expr
58 | . binary_expr RSHIFT binary_expr
59 | . ubinary_expr
60 ubinary_expr: . BNOT ubinary_expr
61 | . ulen_expr
62 ulen_expr: . POUND ulen_expr
63 | . call_expr
64 call_expr: . call_expr LPAREN expr_list RPAREN
65 | . call_expr COLON IDENT LPAREN expr_list RPAREN
66 | . funcdecl_expr
67 funcdecl_expr: . FUNC IDENT LPAREN ident_list RPAREN stmt_list END
68 | . FUNC LPAREN ident_list RPAREN stmt_list END
69 | . index_expr
70 index_expr: . expr LBRACKET expr RBRACKET
71 | . expr DOT IDENT
72 | . ref_expr
73 ex_index_expr: . expr LBRACKET expr RBRACKET
74 | . expr DOT IDENT
75 ref_expr: . IDENT
76 | . lit_expr
77 lit_expr: . INT
78 | . MINUS INT
79 | . FLOAT
80 | . STRING
81 | . NONE
82 | . gen_expr
83 gen_expr: . LBRACKET expr_list RBRACKET
84 | . LBRACE assoc_list RBRACE
85 | . paren_expr
86 paren_expr: . LPAREN expr RPAREN
FUNC shift, and go to state 7
NONE shift, and go to state 11
IDENT shift, and go to state 12
INT shift, and go to state 13
FLOAT shift, and go to state 14
STRING shift, and go to state 15
MINUS shift, and go to state 16
BNOT shift, and go to state 17
LNOT shift, and go to state 18
LBRACE shift, and go to state 19
LPAREN shift, and go to state 20
LBRACKET shift, and go to state 21
POUND shift, and go to state 22
expr go to state 109
logic_expr go to state 25
ulogic_expr go to state 26
rel_expr go to state 27
term_expr go to state 28
factor_expr go to state 29
power_expr go to state 30
binary_expr go to state 31
ubinary_expr go to state 32
ulen_expr go to state 33
call_expr go to state 34
funcdecl_expr go to state 35
index_expr go to state 36
ex_index_expr go to state 37
ref_expr go to state 38
lit_expr go to state 39
gen_expr go to state 40
paren_expr go to state 41
State 50
14 expr: . IDENT ASSIGN expr
15 | . IDENT ASSIGNPLUS expr
16 | . IDENT ASSIGNMINUS expr
16 | IDENT ASSIGNMINUS . expr
17 | . IDENT ASSIGNSTAR expr
18 | . IDENT ASSIGNSLASH expr
19 | . IDENT ASSIGNDSTAR expr
20 | . IDENT ASSIGNBAND expr
21 | . IDENT ASSIGNBOR expr
22 | . IDENT ASSIGNBXOR expr
23 | . ex_index_expr ASSIGN expr
24 | . ex_index_expr ASSIGNPLUS expr
25 | . ex_index_expr ASSIGNMINUS expr
26 | . ex_index_expr ASSIGNSTAR expr
27 | . ex_index_expr ASSIGNSLASH expr
28 | . ex_index_expr ASSIGNDSTAR expr
29 | . ex_index_expr ASSIGNBAND expr
30 | . ex_index_expr ASSIGNBOR expr
31 | . ex_index_expr ASSIGNBXOR expr
32 | . logic_expr
33 logic_expr: . logic_expr LAND ulogic_expr
34 | . logic_expr LOR ulogic_expr
35 | . ulogic_expr
36 ulogic_expr: . LNOT ulogic_expr
37 | . rel_expr
38 rel_expr: . term_expr EQUAL rel_expr
39 | . term_expr NEQUAL rel_expr
40 | . term_expr LESS rel_expr
41 | . term_expr GREATER rel_expr
42 | . term_expr LESSEQ rel_expr
43 | . term_expr GREATEREQ rel_expr
44 | . term_expr
45 term_expr: . term_expr PLUS factor_expr
46 | . term_expr MINUS factor_expr
47 | . factor_expr
48 factor_expr: . factor_expr STAR power_expr
49 | . factor_expr SLASH power_expr
50 | . factor_expr PERCENT power_expr
51 | . power_expr
52 power_expr: . power_expr DSTAR power_expr
53 | . binary_expr
54 binary_expr: . binary_expr BAND binary_expr
55 | . binary_expr BOR binary_expr
56 | . binary_expr BXOR binary_expr
57 | . binary_expr LSHIFT binary_expr
58 | . binary_expr RSHIFT binary_expr
59 | . ubinary_expr
60 ubinary_expr: . BNOT ubinary_expr
61 | . ulen_expr
62 ulen_expr: . POUND ulen_expr
63 | . call_expr
64 call_expr: . call_expr LPAREN expr_list RPAREN
65 | . call_expr COLON IDENT LPAREN expr_list RPAREN
66 | . funcdecl_expr
67 funcdecl_expr: . FUNC IDENT LPAREN ident_list RPAREN stmt_list END
68 | . FUNC LPAREN ident_list RPAREN stmt_list END
69 | . index_expr
70 index_expr: . expr LBRACKET expr RBRACKET
71 | . expr DOT IDENT
72 | . ref_expr
73 ex_index_expr: . expr LBRACKET expr RBRACKET
74 | . expr DOT IDENT
75 ref_expr: . IDENT
76 | . lit_expr
77 lit_expr: . INT
78 | . MINUS INT
79 | . FLOAT
80 | . STRING
81 | . NONE
82 | . gen_expr
83 gen_expr: . LBRACKET expr_list RBRACKET
84 | . LBRACE assoc_list RBRACE
85 | . paren_expr
86 paren_expr: . LPAREN expr RPAREN
FUNC shift, and go to state 7
NONE shift, and go to state 11
IDENT shift, and go to state 12
INT shift, and go to state 13
FLOAT shift, and go to state 14
STRING shift, and go to state 15
MINUS shift, and go to state 16
BNOT shift, and go to state 17
LNOT shift, and go to state 18
LBRACE shift, and go to state 19
LPAREN shift, and go to state 20
LBRACKET shift, and go to state 21
POUND shift, and go to state 22
expr go to state 110
logic_expr go to state 25
ulogic_expr go to state 26
rel_expr go to state 27
term_expr go to state 28
factor_expr go to state 29
power_expr go to state 30
binary_expr go to state 31
ubinary_expr go to state 32
ulen_expr go to state 33
call_expr go to state 34
funcdecl_expr go to state 35
index_expr go to state 36
ex_index_expr go to state 37
ref_expr go to state 38
lit_expr go to state 39
gen_expr go to state 40
paren_expr go to state 41
State 51
14 expr: . IDENT ASSIGN expr
15 | . IDENT ASSIGNPLUS expr
16 | . IDENT ASSIGNMINUS expr
17 | . IDENT ASSIGNSTAR expr
17 | IDENT ASSIGNSTAR . expr
18 | . IDENT ASSIGNSLASH expr
19 | . IDENT ASSIGNDSTAR expr
20 | . IDENT ASSIGNBAND expr
21 | . IDENT ASSIGNBOR expr
22 | . IDENT ASSIGNBXOR expr
23 | . ex_index_expr ASSIGN expr
24 | . ex_index_expr ASSIGNPLUS expr
25 | . ex_index_expr ASSIGNMINUS expr
26 | . ex_index_expr ASSIGNSTAR expr
27 | . ex_index_expr ASSIGNSLASH expr
28 | . ex_index_expr ASSIGNDSTAR expr
29 | . ex_index_expr ASSIGNBAND expr
30 | . ex_index_expr ASSIGNBOR expr
31 | . ex_index_expr ASSIGNBXOR expr
32 | . logic_expr
33 logic_expr: . logic_expr LAND ulogic_expr
34 | . logic_expr LOR ulogic_expr
35 | . ulogic_expr
36 ulogic_expr: . LNOT ulogic_expr
37 | . rel_expr
38 rel_expr: . term_expr EQUAL rel_expr
39 | . term_expr NEQUAL rel_expr
40 | . term_expr LESS rel_expr
41 | . term_expr GREATER rel_expr
42 | . term_expr LESSEQ rel_expr
43 | . term_expr GREATEREQ rel_expr
44 | . term_expr
45 term_expr: . term_expr PLUS factor_expr
46 | . term_expr MINUS factor_expr
47 | . factor_expr
48 factor_expr: . factor_expr STAR power_expr
49 | . factor_expr SLASH power_expr
50 | . factor_expr PERCENT power_expr
51 | . power_expr
52 power_expr: . power_expr DSTAR power_expr
53 | . binary_expr
54 binary_expr: . binary_expr BAND binary_expr
55 | . binary_expr BOR binary_expr
56 | . binary_expr BXOR binary_expr
57 | . binary_expr LSHIFT binary_expr
58 | . binary_expr RSHIFT binary_expr
59 | . ubinary_expr
60 ubinary_expr: . BNOT ubinary_expr
61 | . ulen_expr
62 ulen_expr: . POUND ulen_expr
63 | . call_expr
64 call_expr: . call_expr LPAREN expr_list RPAREN
65 | . call_expr COLON IDENT LPAREN expr_list RPAREN
66 | . funcdecl_expr
67 funcdecl_expr: . FUNC IDENT LPAREN ident_list RPAREN stmt_list END
68 | . FUNC LPAREN ident_list RPAREN stmt_list END
69 | . index_expr
70 index_expr: . expr LBRACKET expr RBRACKET
71 | . expr DOT IDENT
72 | . ref_expr
73 ex_index_expr: . expr LBRACKET expr RBRACKET
74 | . expr DOT IDENT
75 ref_expr: . IDENT
76 | . lit_expr
77 lit_expr: . INT
78 | . MINUS INT
79 | . FLOAT
80 | . STRING
81 | . NONE
82 | . gen_expr
83 gen_expr: . LBRACKET expr_list RBRACKET
84 | . LBRACE assoc_list RBRACE
85 | . paren_expr
86 paren_expr: . LPAREN expr RPAREN
FUNC shift, and go to state 7
NONE shift, and go to state 11
IDENT shift, and go to state 12
INT shift, and go to state 13
FLOAT shift, and go to state 14
STRING shift, and go to state 15
MINUS shift, and go to state 16
BNOT shift, and go to state 17
LNOT shift, and go to state 18
LBRACE shift, and go to state 19
LPAREN shift, and go to state 20
LBRACKET shift, and go to state 21
POUND shift, and go to state 22
expr go to state 111
logic_expr go to state 25
ulogic_expr go to state 26
rel_expr go to state 27
term_expr go to state 28
factor_expr go to state 29
power_expr go to state 30
binary_expr go to state 31
ubinary_expr go to state 32
ulen_expr go to state 33
call_expr go to state 34
funcdecl_expr go to state 35
index_expr go to state 36
ex_index_expr go to state 37
ref_expr go to state 38
lit_expr go to state 39
gen_expr go to state 40
paren_expr go to state 41
State 52
14 expr: . IDENT ASSIGN expr
15 | . IDENT ASSIGNPLUS expr
16 | . IDENT ASSIGNMINUS expr
17 | . IDENT ASSIGNSTAR expr
18 | . IDENT ASSIGNSLASH expr
18 | IDENT ASSIGNSLASH . expr
19 | . IDENT ASSIGNDSTAR expr
20 | . IDENT ASSIGNBAND expr
21 | . IDENT ASSIGNBOR expr
22 | . IDENT ASSIGNBXOR expr
23 | . ex_index_expr ASSIGN expr
24 | . ex_index_expr ASSIGNPLUS expr
25 | . ex_index_expr ASSIGNMINUS expr
26 | . ex_index_expr ASSIGNSTAR expr
27 | . ex_index_expr ASSIGNSLASH expr
28 | . ex_index_expr ASSIGNDSTAR expr
29 | . ex_index_expr ASSIGNBAND expr
30 | . ex_index_expr ASSIGNBOR expr
31 | . ex_index_expr ASSIGNBXOR expr
32 | . logic_expr
33 logic_expr: . logic_expr LAND ulogic_expr
34 | . logic_expr LOR ulogic_expr
35 | . ulogic_expr
36 ulogic_expr: . LNOT ulogic_expr
37 | . rel_expr
38 rel_expr: . term_expr EQUAL rel_expr
39 | . term_expr NEQUAL rel_expr
40 | . term_expr LESS rel_expr
41 | . term_expr GREATER rel_expr
42 | . term_expr LESSEQ rel_expr
43 | . term_expr GREATEREQ rel_expr
44 | . term_expr
45 term_expr: . term_expr PLUS factor_expr
46 | . term_expr MINUS factor_expr
47 | . factor_expr
48 factor_expr: . factor_expr STAR power_expr
49 | . factor_expr SLASH power_expr
50 | . factor_expr PERCENT power_expr
51 | . power_expr
52 power_expr: . power_expr DSTAR power_expr
53 | . binary_expr
54 binary_expr: . binary_expr BAND binary_expr
55 | . binary_expr BOR binary_expr
56 | . binary_expr BXOR binary_expr
57 | . binary_expr LSHIFT binary_expr
58 | . binary_expr RSHIFT binary_expr
59 | . ubinary_expr
60 ubinary_expr: . BNOT ubinary_expr
61 | . ulen_expr
62 ulen_expr: . POUND ulen_expr
63 | . call_expr
64 call_expr: . call_expr LPAREN expr_list RPAREN
65 | . call_expr COLON IDENT LPAREN expr_list RPAREN
66 | . funcdecl_expr
67 funcdecl_expr: . FUNC IDENT LPAREN ident_list RPAREN stmt_list END
68 | . FUNC LPAREN ident_list RPAREN stmt_list END
69 | . index_expr
70 index_expr: . expr LBRACKET expr RBRACKET
71 | . expr DOT IDENT
72 | . ref_expr
73 ex_index_expr: . expr LBRACKET expr RBRACKET
74 | . expr DOT IDENT
75 ref_expr: . IDENT
76 | . lit_expr
77 lit_expr: . INT
78 | . MINUS INT
79 | . FLOAT
80 | . STRING
81 | . NONE
82 | . gen_expr
83 gen_expr: . LBRACKET expr_list RBRACKET
84 | . LBRACE assoc_list RBRACE
85 | . paren_expr
86 paren_expr: . LPAREN expr RPAREN
FUNC shift, and go to state 7
NONE shift, and go to state 11
IDENT shift, and go to state 12
INT shift, and go to state 13
FLOAT shift, and go to state 14
STRING shift, and go to state 15
MINUS shift, and go to state 16
BNOT shift, and go to state 17
LNOT shift, and go to state 18
LBRACE shift, and go to state 19
LPAREN shift, and go to state 20
LBRACKET shift, and go to state 21
POUND shift, and go to state 22
expr go to state 112
logic_expr go to state 25
ulogic_expr go to state 26
rel_expr go to state 27
term_expr go to state 28
factor_expr go to state 29
power_expr go to state 30
binary_expr go to state 31
ubinary_expr go to state 32
ulen_expr go to state 33
call_expr go to state 34
funcdecl_expr go to state 35
index_expr go to state 36
ex_index_expr go to state 37
ref_expr go to state 38
lit_expr go to state 39
gen_expr go to state 40
paren_expr go to state 41
State 53
14 expr: . IDENT ASSIGN expr
15 | . IDENT ASSIGNPLUS expr
16 | . IDENT ASSIGNMINUS expr
17 | . IDENT ASSIGNSTAR expr
18 | . IDENT ASSIGNSLASH expr
19 | . IDENT ASSIGNDSTAR expr
19 | IDENT ASSIGNDSTAR . expr
20 | . IDENT ASSIGNBAND expr
21 | . IDENT ASSIGNBOR expr
22 | . IDENT ASSIGNBXOR expr
23 | . ex_index_expr ASSIGN expr
24 | . ex_index_expr ASSIGNPLUS expr
25 | . ex_index_expr ASSIGNMINUS expr
26 | . ex_index_expr ASSIGNSTAR expr
27 | . ex_index_expr ASSIGNSLASH expr
28 | . ex_index_expr ASSIGNDSTAR expr
29 | . ex_index_expr ASSIGNBAND expr
30 | . ex_index_expr ASSIGNBOR expr
31 | . ex_index_expr ASSIGNBXOR expr
32 | . logic_expr
33 logic_expr: . logic_expr LAND ulogic_expr
34 | . logic_expr LOR ulogic_expr
35 | . ulogic_expr
36 ulogic_expr: . LNOT ulogic_expr
37 | . rel_expr
38 rel_expr: . term_expr EQUAL rel_expr
39 | . term_expr NEQUAL rel_expr
40 | . term_expr LESS rel_expr
41 | . term_expr GREATER rel_expr
42 | . term_expr LESSEQ rel_expr
43 | . term_expr GREATEREQ rel_expr
44 | . term_expr
45 term_expr: . term_expr PLUS factor_expr
46 | . term_expr MINUS factor_expr
47 | . factor_expr
48 factor_expr: . factor_expr STAR power_expr
49 | . factor_expr SLASH power_expr
50 | . factor_expr PERCENT power_expr
51 | . power_expr
52 power_expr: . power_expr DSTAR power_expr
53 | . binary_expr
54 binary_expr: . binary_expr BAND binary_expr
55 | . binary_expr BOR binary_expr
56 | . binary_expr BXOR binary_expr
57 | . binary_expr LSHIFT binary_expr
58 | . binary_expr RSHIFT binary_expr
59 | . ubinary_expr
60 ubinary_expr: . BNOT ubinary_expr
61 | . ulen_expr
62 ulen_expr: . POUND ulen_expr
63 | . call_expr
64 call_expr: . call_expr LPAREN expr_list RPAREN
65 | . call_expr COLON IDENT LPAREN expr_list RPAREN
66 | . funcdecl_expr
67 funcdecl_expr: . FUNC IDENT LPAREN ident_list RPAREN stmt_list END
68 | . FUNC LPAREN ident_list RPAREN stmt_list END
69 | . index_expr
70 index_expr: . expr LBRACKET expr RBRACKET
71 | . expr DOT IDENT
72 | . ref_expr
73 ex_index_expr: . expr LBRACKET expr RBRACKET
74 | . expr DOT IDENT
75 ref_expr: . IDENT
76 | . lit_expr
77 lit_expr: . INT
78 | . MINUS INT
79 | . FLOAT
80 | . STRING
81 | . NONE
82 | . gen_expr
83 gen_expr: . LBRACKET expr_list RBRACKET
84 | . LBRACE assoc_list RBRACE
85 | . paren_expr
86 paren_expr: . LPAREN expr RPAREN
FUNC shift, and go to state 7
NONE shift, and go to state 11
IDENT shift, and go to state 12
INT shift, and go to state 13
FLOAT shift, and go to state 14
STRING shift, and go to state 15
MINUS shift, and go to state 16
BNOT shift, and go to state 17
LNOT shift, and go to state 18
LBRACE shift, and go to state 19
LPAREN shift, and go to state 20
LBRACKET shift, and go to state 21
POUND shift, and go to state 22
expr go to state 113
logic_expr go to state 25
ulogic_expr go to state 26
rel_expr go to state 27
term_expr go to state 28
factor_expr go to state 29
power_expr go to state 30
binary_expr go to state 31
ubinary_expr go to state 32
ulen_expr go to state 33
call_expr go to state 34
funcdecl_expr go to state 35
index_expr go to state 36
ex_index_expr go to state 37
ref_expr go to state 38
lit_expr go to state 39
gen_expr go to state 40
paren_expr go to state 41
State 54
14 expr: . IDENT ASSIGN expr
15 | . IDENT ASSIGNPLUS expr
16 | . IDENT ASSIGNMINUS expr
17 | . IDENT ASSIGNSTAR expr
18 | . IDENT ASSIGNSLASH expr
19 | . IDENT ASSIGNDSTAR expr
20 | . IDENT ASSIGNBAND expr
20 | IDENT ASSIGNBAND . expr
21 | . IDENT ASSIGNBOR expr
22 | . IDENT ASSIGNBXOR expr
23 | . ex_index_expr ASSIGN expr
24 | . ex_index_expr ASSIGNPLUS expr
25 | . ex_index_expr ASSIGNMINUS expr
26 | . ex_index_expr ASSIGNSTAR expr
27 | . ex_index_expr ASSIGNSLASH expr
28 | . ex_index_expr ASSIGNDSTAR expr
29 | . ex_index_expr ASSIGNBAND expr
30 | . ex_index_expr ASSIGNBOR expr
31 | . ex_index_expr ASSIGNBXOR expr
32 | . logic_expr
33 logic_expr: . logic_expr LAND ulogic_expr
34 | . logic_expr LOR ulogic_expr
35 | . ulogic_expr
36 ulogic_expr: . LNOT ulogic_expr
37 | . rel_expr
38 rel_expr: . term_expr EQUAL rel_expr
39 | . term_expr NEQUAL rel_expr
40 | . term_expr LESS rel_expr
41 | . term_expr GREATER rel_expr
42 | . term_expr LESSEQ rel_expr
43 | . term_expr GREATEREQ rel_expr
44 | . term_expr
45 term_expr: . term_expr PLUS factor_expr
46 | . term_expr MINUS factor_expr
47 | . factor_expr
48 factor_expr: . factor_expr STAR power_expr
49 | . factor_expr SLASH power_expr
50 | . factor_expr PERCENT power_expr
51 | . power_expr
52 power_expr: . power_expr DSTAR power_expr
53 | . binary_expr
54 binary_expr: . binary_expr BAND binary_expr
55 | . binary_expr BOR binary_expr
56 | . binary_expr BXOR binary_expr
57 | . binary_expr LSHIFT binary_expr
58 | . binary_expr RSHIFT binary_expr
59 | . ubinary_expr
60 ubinary_expr: . BNOT ubinary_expr
61 | . ulen_expr
62 ulen_expr: . POUND ulen_expr
63 | . call_expr
64 call_expr: . call_expr LPAREN expr_list RPAREN
65 | . call_expr COLON IDENT LPAREN expr_list RPAREN
66 | . funcdecl_expr
67 funcdecl_expr: . FUNC IDENT LPAREN ident_list RPAREN stmt_list END
68 | . FUNC LPAREN ident_list RPAREN stmt_list END
69 | . index_expr
70 index_expr: . expr LBRACKET expr RBRACKET
71 | . expr DOT IDENT
72 | . ref_expr
73 ex_index_expr: . expr LBRACKET expr RBRACKET
74 | . expr DOT IDENT
75 ref_expr: . IDENT
76 | . lit_expr
77 lit_expr: . INT
78 | . MINUS INT
79 | . FLOAT
80 | . STRING
81 | . NONE
82 | . gen_expr
83 gen_expr: . LBRACKET expr_list RBRACKET
84 | . LBRACE assoc_list RBRACE
85 | . paren_expr
86 paren_expr: . LPAREN expr RPAREN
FUNC shift, and go to state 7
NONE shift, and go to state 11
IDENT shift, and go to state 12
INT shift, and go to state 13
FLOAT shift, and go to state 14
STRING shift, and go to state 15
MINUS shift, and go to state 16
BNOT shift, and go to state 17
LNOT shift, and go to state 18
LBRACE shift, and go to state 19
LPAREN shift, and go to state 20
LBRACKET shift, and go to state 21
POUND shift, and go to state 22
expr go to state 114
logic_expr go to state 25
ulogic_expr go to state 26
rel_expr go to state 27
term_expr go to state 28
factor_expr go to state 29
power_expr go to state 30
binary_expr go to state 31
ubinary_expr go to state 32
ulen_expr go to state 33
call_expr go to state 34
funcdecl_expr go to state 35
index_expr go to state 36
ex_index_expr go to state 37
ref_expr go to state 38
lit_expr go to state 39
gen_expr go to state 40
paren_expr go to state 41
State 55
14 expr: . IDENT ASSIGN expr
15 | . IDENT ASSIGNPLUS expr
16 | . IDENT ASSIGNMINUS expr
17 | . IDENT ASSIGNSTAR expr
18 | . IDENT ASSIGNSLASH expr
19 | . IDENT ASSIGNDSTAR expr
20 | . IDENT ASSIGNBAND expr
21 | . IDENT ASSIGNBOR expr
21 | IDENT ASSIGNBOR . expr
22 | . IDENT ASSIGNBXOR expr
23 | . ex_index_expr ASSIGN expr
24 | . ex_index_expr ASSIGNPLUS expr
25 | . ex_index_expr ASSIGNMINUS expr
26 | . ex_index_expr ASSIGNSTAR expr
27 | . ex_index_expr ASSIGNSLASH expr
28 | . ex_index_expr ASSIGNDSTAR expr
29 | . ex_index_expr ASSIGNBAND expr
30 | . ex_index_expr ASSIGNBOR expr
31 | . ex_index_expr ASSIGNBXOR expr
32 | . logic_expr
33 logic_expr: . logic_expr LAND ulogic_expr
34 | . logic_expr LOR ulogic_expr
35 | . ulogic_expr
36 ulogic_expr: . LNOT ulogic_expr
37 | . rel_expr
38 rel_expr: . term_expr EQUAL rel_expr
39 | . term_expr NEQUAL rel_expr
40 | . term_expr LESS rel_expr
41 | . term_expr GREATER rel_expr
42 | . term_expr LESSEQ rel_expr
43 | . term_expr GREATEREQ rel_expr
44 | . term_expr
45 term_expr: . term_expr PLUS factor_expr
46 | . term_expr MINUS factor_expr
47 | . factor_expr
48 factor_expr: . factor_expr STAR power_expr
49 | . factor_expr SLASH power_expr
50 | . factor_expr PERCENT power_expr
51 | . power_expr
52 power_expr: . power_expr DSTAR power_expr
53 | . binary_expr
54 binary_expr: . binary_expr BAND binary_expr
55 | . binary_expr BOR binary_expr
56 | . binary_expr BXOR binary_expr
57 | . binary_expr LSHIFT binary_expr
58 | . binary_expr RSHIFT binary_expr
59 | . ubinary_expr
60 ubinary_expr: . BNOT ubinary_expr
61 | . ulen_expr
62 ulen_expr: . POUND ulen_expr
63 | . call_expr
64 call_expr: . call_expr LPAREN expr_list RPAREN
65 | . call_expr COLON IDENT LPAREN expr_list RPAREN
66 | . funcdecl_expr
67 funcdecl_expr: . FUNC IDENT LPAREN ident_list RPAREN stmt_list END
68 | . FUNC LPAREN ident_list RPAREN stmt_list END
69 | . index_expr
70 index_expr: . expr LBRACKET expr RBRACKET
71 | . expr DOT IDENT
72 | . ref_expr
73 ex_index_expr: . expr LBRACKET expr RBRACKET
74 | . expr DOT IDENT
75 ref_expr: . IDENT
76 | . lit_expr
77 lit_expr: . INT
78 | . MINUS INT
79 | . FLOAT
80 | . STRING
81 | . NONE
82 | . gen_expr
83 gen_expr: . LBRACKET expr_list RBRACKET
84 | . LBRACE assoc_list RBRACE
85 | . paren_expr
86 paren_expr: . LPAREN expr RPAREN
FUNC shift, and go to state 7
NONE shift, and go to state 11
IDENT shift, and go to state 12
INT shift, and go to state 13
FLOAT shift, and go to state 14
STRING shift, and go to state 15
MINUS shift, and go to state 16
BNOT shift, and go to state 17
LNOT shift, and go to state 18
LBRACE shift, and go to state 19
LPAREN shift, and go to state 20
LBRACKET shift, and go to state 21
POUND shift, and go to state 22
expr go to state 115
logic_expr go to state 25
ulogic_expr go to state 26
rel_expr go to state 27
term_expr go to state 28
factor_expr go to state 29
power_expr go to state 30
binary_expr go to state 31
ubinary_expr go to state 32
ulen_expr go to state 33
call_expr go to state 34
funcdecl_expr go to state 35
index_expr go to state 36
ex_index_expr go to state 37
ref_expr go to state 38
lit_expr go to state 39
gen_expr go to state 40
paren_expr go to state 41
State 56
14 expr: . IDENT ASSIGN expr
15 | . IDENT ASSIGNPLUS expr
16 | . IDENT ASSIGNMINUS expr
17 | . IDENT ASSIGNSTAR expr
18 | . IDENT ASSIGNSLASH expr
19 | . IDENT ASSIGNDSTAR expr
20 | . IDENT ASSIGNBAND expr
21 | . IDENT ASSIGNBOR expr
22 | . IDENT ASSIGNBXOR expr
22 | IDENT ASSIGNBXOR . expr
23 | . ex_index_expr ASSIGN expr
24 | . ex_index_expr ASSIGNPLUS expr
25 | . ex_index_expr ASSIGNMINUS expr
26 | . ex_index_expr ASSIGNSTAR expr
27 | . ex_index_expr ASSIGNSLASH expr
28 | . ex_index_expr ASSIGNDSTAR expr
29 | . ex_index_expr ASSIGNBAND expr
30 | . ex_index_expr ASSIGNBOR expr
31 | . ex_index_expr ASSIGNBXOR expr
32 | . logic_expr
33 logic_expr: . logic_expr LAND ulogic_expr
34 | . logic_expr LOR ulogic_expr
35 | . ulogic_expr
36 ulogic_expr: . LNOT ulogic_expr
37 | . rel_expr
38 rel_expr: . term_expr EQUAL rel_expr
39 | . term_expr NEQUAL rel_expr
40 | . term_expr LESS rel_expr
41 | . term_expr GREATER rel_expr
42 | . term_expr LESSEQ rel_expr
43 | . term_expr GREATEREQ rel_expr
44 | . term_expr
45 term_expr: . term_expr PLUS factor_expr
46 | . term_expr MINUS factor_expr
47 | . factor_expr
48 factor_expr: . factor_expr STAR power_expr
49 | . factor_expr SLASH power_expr
50 | . factor_expr PERCENT power_expr
51 | . power_expr
52 power_expr: . power_expr DSTAR power_expr
53 | . binary_expr
54 binary_expr: . binary_expr BAND binary_expr
55 | . binary_expr BOR binary_expr
56 | . binary_expr BXOR binary_expr
57 | . binary_expr LSHIFT binary_expr
58 | . binary_expr RSHIFT binary_expr
59 | . ubinary_expr
60 ubinary_expr: . BNOT ubinary_expr
61 | . ulen_expr
62 ulen_expr: . POUND ulen_expr
63 | . call_expr
64 call_expr: . call_expr LPAREN expr_list RPAREN
65 | . call_expr COLON IDENT LPAREN expr_list RPAREN
66 | . funcdecl_expr
67 funcdecl_expr: . FUNC IDENT LPAREN ident_list RPAREN stmt_list END
68 | . FUNC LPAREN ident_list RPAREN stmt_list END
69 | . index_expr
70 index_expr: . expr LBRACKET expr RBRACKET
71 | . expr DOT IDENT
72 | . ref_expr
73 ex_index_expr: . expr LBRACKET expr RBRACKET
74 | . expr DOT IDENT
75 ref_expr: . IDENT
76 | . lit_expr
77 lit_expr: . INT
78 | . MINUS INT
79 | . FLOAT
80 | . STRING
81 | . NONE
82 | . gen_expr
83 gen_expr: . LBRACKET expr_list RBRACKET
84 | . LBRACE assoc_list RBRACE
85 | . paren_expr
86 paren_expr: . LPAREN expr RPAREN
FUNC shift, and go to state 7
NONE shift, and go to state 11
IDENT shift, and go to state 12
INT shift, and go to state 13
FLOAT shift, and go to state 14
STRING shift, and go to state 15
MINUS shift, and go to state 16
BNOT shift, and go to state 17
LNOT shift, and go to state 18
LBRACE shift, and go to state 19
LPAREN shift, and go to state 20
LBRACKET shift, and go to state 21
POUND shift, and go to state 22
expr go to state 116
logic_expr go to state 25
ulogic_expr go to state 26
rel_expr go to state 27
term_expr go to state 28
factor_expr go to state 29
power_expr go to state 30
binary_expr go to state 31
ubinary_expr go to state 32
ulen_expr go to state 33
call_expr go to state 34
funcdecl_expr go to state 35
index_expr go to state 36
ex_index_expr go to state 37
ref_expr go to state 38
lit_expr go to state 39
gen_expr go to state 40
paren_expr go to state 41
State 57
78 lit_expr: MINUS INT .
$default reduce using rule 78 (lit_expr)
State 58
70 index_expr: expr . LBRACKET expr RBRACKET
71 | expr . DOT IDENT
73 ex_index_expr: expr . LBRACKET expr RBRACKET
74 | expr . DOT IDENT
LBRACKET shift, and go to state 70
DOT shift, and go to state 71
State 59
59 binary_expr: ubinary_expr . [PLUS, MINUS, STAR, SLASH, PERCENT, DSTAR, BAND, BOR, BXOR, LAND, LOR, EQUAL, NEQUAL, LESS, GREATER, LESSEQ, GREATEREQ, RSHIFT, LSHIFT, LBRACKET, DOT]
60 ubinary_expr: BNOT ubinary_expr . [$end, IF, THEN, ELSE, WHILE, FOR, DO, FUNC, RETURN, BREAK, CONTINUE, END, NONE, IDENT, INT, FLOAT, STRING, PLUS, MINUS, STAR, SLASH, PERCENT, DSTAR, BAND, BOR, BXOR, BNOT, LAND, LOR, LNOT, EQUAL, NEQUAL, LESS, GREATER, LESSEQ, GREATEREQ, RSHIFT, LSHIFT, LBRACE, RBRACE, LPAREN, RPAREN, LBRACKET, RBRACKET, DOT, SEMICOLON, COMMA, POUND]
PLUS reduce using rule 59 (binary_expr)
PLUS [reduce using rule 60 (ubinary_expr)]
MINUS reduce using rule 59 (binary_expr)
MINUS [reduce using rule 60 (ubinary_expr)]
STAR reduce using rule 59 (binary_expr)
STAR [reduce using rule 60 (ubinary_expr)]
SLASH reduce using rule 59 (binary_expr)
SLASH [reduce using rule 60 (ubinary_expr)]
PERCENT reduce using rule 59 (binary_expr)
PERCENT [reduce using rule 60 (ubinary_expr)]
DSTAR reduce using rule 59 (binary_expr)
DSTAR [reduce using rule 60 (ubinary_expr)]
BAND reduce using rule 59 (binary_expr)
BAND [reduce using rule 60 (ubinary_expr)]
BOR reduce using rule 59 (binary_expr)
BOR [reduce using rule 60 (ubinary_expr)]
BXOR reduce using rule 59 (binary_expr)
BXOR [reduce using rule 60 (ubinary_expr)]
LAND reduce using rule 59 (binary_expr)
LAND [reduce using rule 60 (ubinary_expr)]
LOR reduce using rule 59 (binary_expr)
LOR [reduce using rule 60 (ubinary_expr)]
EQUAL reduce using rule 59 (binary_expr)
EQUAL [reduce using rule 60 (ubinary_expr)]
NEQUAL reduce using rule 59 (binary_expr)
NEQUAL [reduce using rule 60 (ubinary_expr)]
LESS reduce using rule 59 (binary_expr)
LESS [reduce using rule 60 (ubinary_expr)]
GREATER reduce using rule 59 (binary_expr)
GREATER [reduce using rule 60 (ubinary_expr)]
LESSEQ reduce using rule 59 (binary_expr)
LESSEQ [reduce using rule 60 (ubinary_expr)]
GREATEREQ reduce using rule 59 (binary_expr)
GREATEREQ [reduce using rule 60 (ubinary_expr)]
RSHIFT reduce using rule 59 (binary_expr)
RSHIFT [reduce using rule 60 (ubinary_expr)]
LSHIFT reduce using rule 59 (binary_expr)
LSHIFT [reduce using rule 60 (ubinary_expr)]
LBRACKET reduce using rule 59 (binary_expr)
LBRACKET [reduce using rule 60 (ubinary_expr)]
DOT reduce using rule 59 (binary_expr)
DOT [reduce using rule 60 (ubinary_expr)]
$default reduce using rule 60 (ubinary_expr)
State 60
35 logic_expr: ulogic_expr . [LAND, LOR, LBRACKET, DOT]
36 ulogic_expr: LNOT ulogic_expr . [$end, IF, THEN, ELSE, WHILE, FOR, DO, FUNC, RETURN, BREAK, CONTINUE, END, NONE, IDENT, INT, FLOAT, STRING, MINUS, BNOT, LAND, LOR, LNOT, LBRACE, RBRACE, LPAREN, RPAREN, LBRACKET, RBRACKET, DOT, SEMICOLON, COMMA, POUND]
LAND reduce using rule 35 (logic_expr)
LAND [reduce using rule 36 (ulogic_expr)]
LOR reduce using rule 35 (logic_expr)
LOR [reduce using rule 36 (ulogic_expr)]
LBRACKET reduce using rule 35 (logic_expr)
LBRACKET [reduce using rule 36 (ulogic_expr)]
DOT reduce using rule 35 (logic_expr)
DOT [reduce using rule 36 (ulogic_expr)]
$default reduce using rule 36 (ulogic_expr)
State 61
100 assoc_item: IDENT . ASSIGN expr
ASSIGN shift, and go to state 117
State 62
14 expr: . IDENT ASSIGN expr
15 | . IDENT ASSIGNPLUS expr
16 | . IDENT ASSIGNMINUS expr
17 | . IDENT ASSIGNSTAR expr
18 | . IDENT ASSIGNSLASH expr
19 | . IDENT ASSIGNDSTAR expr
20 | . IDENT ASSIGNBAND expr
21 | . IDENT ASSIGNBOR expr
22 | . IDENT ASSIGNBXOR expr
23 | . ex_index_expr ASSIGN expr
24 | . ex_index_expr ASSIGNPLUS expr
25 | . ex_index_expr ASSIGNMINUS expr
26 | . ex_index_expr ASSIGNSTAR expr
27 | . ex_index_expr ASSIGNSLASH expr
28 | . ex_index_expr ASSIGNDSTAR expr
29 | . ex_index_expr ASSIGNBAND expr
30 | . ex_index_expr ASSIGNBOR expr
31 | . ex_index_expr ASSIGNBXOR expr
32 | . logic_expr
33 logic_expr: . logic_expr LAND ulogic_expr
34 | . logic_expr LOR ulogic_expr
35 | . ulogic_expr
36 ulogic_expr: . LNOT ulogic_expr
37 | . rel_expr
38 rel_expr: . term_expr EQUAL rel_expr
39 | . term_expr NEQUAL rel_expr
40 | . term_expr LESS rel_expr
41 | . term_expr GREATER rel_expr
42 | . term_expr LESSEQ rel_expr
43 | . term_expr GREATEREQ rel_expr
44 | . term_expr
45 term_expr: . term_expr PLUS factor_expr
46 | . term_expr MINUS factor_expr
47 | . factor_expr
48 factor_expr: . factor_expr STAR power_expr
49 | . factor_expr SLASH power_expr
50 | . factor_expr PERCENT power_expr
51 | . power_expr
52 power_expr: . power_expr DSTAR power_expr
53 | . binary_expr
54 binary_expr: . binary_expr BAND binary_expr
55 | . binary_expr BOR binary_expr
56 | . binary_expr BXOR binary_expr
57 | . binary_expr LSHIFT binary_expr
58 | . binary_expr RSHIFT binary_expr
59 | . ubinary_expr
60 ubinary_expr: . BNOT ubinary_expr
61 | . ulen_expr
62 ulen_expr: . POUND ulen_expr
63 | . call_expr
64 call_expr: . call_expr LPAREN expr_list RPAREN
65 | . call_expr COLON IDENT LPAREN expr_list RPAREN
66 | . funcdecl_expr
67 funcdecl_expr: . FUNC IDENT LPAREN ident_list RPAREN stmt_list END
68 | . FUNC LPAREN ident_list RPAREN stmt_list END
69 | . index_expr
70 index_expr: . expr LBRACKET expr RBRACKET
71 | . expr DOT IDENT
72 | . ref_expr
73 ex_index_expr: . expr LBRACKET expr RBRACKET
74 | . expr DOT IDENT
75 ref_expr: . IDENT
76 | . lit_expr
77 lit_expr: . INT
78 | . MINUS INT
79 | . FLOAT
80 | . STRING
81 | . NONE
82 | . gen_expr
83 gen_expr: . LBRACKET expr_list RBRACKET
84 | . LBRACE assoc_list RBRACE
85 | . paren_expr
86 paren_expr: . LPAREN expr RPAREN
99 assoc_item: LBRACKET . expr RBRACKET ASSIGN expr
FUNC shift, and go to state 7
NONE shift, and go to state 11
IDENT shift, and go to state 12
INT shift, and go to state 13
FLOAT shift, and go to state 14
STRING shift, and go to state 15
MINUS shift, and go to state 16
BNOT shift, and go to state 17
LNOT shift, and go to state 18
LBRACE shift, and go to state 19
LPAREN shift, and go to state 20
LBRACKET shift, and go to state 21
POUND shift, and go to state 22
expr go to state 118
logic_expr go to state 25
ulogic_expr go to state 26
rel_expr go to state 27
term_expr go to state 28
factor_expr go to state 29
power_expr go to state 30
binary_expr go to state 31
ubinary_expr go to state 32
ulen_expr go to state 33
call_expr go to state 34
funcdecl_expr go to state 35
index_expr go to state 36
ex_index_expr go to state 37
ref_expr go to state 38
lit_expr go to state 39
gen_expr go to state 40
paren_expr go to state 41
State 63
84 gen_expr: LBRACE assoc_list . RBRACE
97 assoc_list: assoc_list . COMMA
98 | assoc_list . assoc_item
99 assoc_item: . LBRACKET expr RBRACKET ASSIGN expr
100 | . IDENT ASSIGN expr
IDENT shift, and go to state 61
RBRACE shift, and go to state 119
LBRACKET shift, and go to state 62
COMMA shift, and go to state 120
assoc_item go to state 121
State 64
96 assoc_list: assoc_item .
$default reduce using rule 96 (assoc_list)
State 65
70 index_expr: expr . LBRACKET expr RBRACKET
71 | expr . DOT IDENT
73 ex_index_expr: expr . LBRACKET expr RBRACKET
74 | expr . DOT IDENT
86 paren_expr: LPAREN expr . RPAREN
RPAREN shift, and go to state 122
LBRACKET shift, and go to state 70
DOT shift, and go to state 71
State 66
70 index_expr: expr . LBRACKET expr RBRACKET
71 | expr . DOT IDENT
73 ex_index_expr: expr . LBRACKET expr RBRACKET
74 | expr . DOT IDENT
88 expr_list: expr . [FUNC, NONE, IDENT, INT, FLOAT, STRING, MINUS, BNOT, LNOT, LBRACE, LPAREN, RPAREN, LBRACKET, RBRACKET, COMMA, POUND]
LBRACKET shift, and go to state 70
DOT shift, and go to state 71
LBRACKET [reduce using rule 88 (expr_list)]
$default reduce using rule 88 (expr_list)
State 67
14 expr: . IDENT ASSIGN expr
15 | . IDENT ASSIGNPLUS expr
16 | . IDENT ASSIGNMINUS expr
17 | . IDENT ASSIGNSTAR expr
18 | . IDENT ASSIGNSLASH expr
19 | . IDENT ASSIGNDSTAR expr
20 | . IDENT ASSIGNBAND expr
21 | . IDENT ASSIGNBOR expr
22 | . IDENT ASSIGNBXOR expr
23 | . ex_index_expr ASSIGN expr
24 | . ex_index_expr ASSIGNPLUS expr
25 | . ex_index_expr ASSIGNMINUS expr
26 | . ex_index_expr ASSIGNSTAR expr
27 | . ex_index_expr ASSIGNSLASH expr
28 | . ex_index_expr ASSIGNDSTAR expr
29 | . ex_index_expr ASSIGNBAND expr
30 | . ex_index_expr ASSIGNBOR expr
31 | . ex_index_expr ASSIGNBXOR expr
32 | . logic_expr
33 logic_expr: . logic_expr LAND ulogic_expr
34 | . logic_expr LOR ulogic_expr
35 | . ulogic_expr
36 ulogic_expr: . LNOT ulogic_expr
37 | . rel_expr
38 rel_expr: . term_expr EQUAL rel_expr
39 | . term_expr NEQUAL rel_expr
40 | . term_expr LESS rel_expr
41 | . term_expr GREATER rel_expr
42 | . term_expr LESSEQ rel_expr
43 | . term_expr GREATEREQ rel_expr
44 | . term_expr
45 term_expr: . term_expr PLUS factor_expr
46 | . term_expr MINUS factor_expr
47 | . factor_expr
48 factor_expr: . factor_expr STAR power_expr
49 | . factor_expr SLASH power_expr
50 | . factor_expr PERCENT power_expr
51 | . power_expr
52 power_expr: . power_expr DSTAR power_expr
53 | . binary_expr
54 binary_expr: . binary_expr BAND binary_expr
55 | . binary_expr BOR binary_expr
56 | . binary_expr BXOR binary_expr
57 | . binary_expr LSHIFT binary_expr
58 | . binary_expr RSHIFT binary_expr
59 | . ubinary_expr
60 ubinary_expr: . BNOT ubinary_expr
61 | . ulen_expr
62 ulen_expr: . POUND ulen_expr
63 | . call_expr
64 call_expr: . call_expr LPAREN expr_list RPAREN
65 | . call_expr COLON IDENT LPAREN expr_list RPAREN
66 | . funcdecl_expr
67 funcdecl_expr: . FUNC IDENT LPAREN ident_list RPAREN stmt_list END
68 | . FUNC LPAREN ident_list RPAREN stmt_list END
69 | . index_expr
70 index_expr: . expr LBRACKET expr RBRACKET
71 | . expr DOT IDENT
72 | . ref_expr
73 ex_index_expr: . expr LBRACKET expr RBRACKET
74 | . expr DOT IDENT
75 ref_expr: . IDENT
76 | . lit_expr
77 lit_expr: . INT
78 | . MINUS INT
79 | . FLOAT
80 | . STRING
81 | . NONE
82 | . gen_expr
83 gen_expr: . LBRACKET expr_list RBRACKET
83 | LBRACKET expr_list . RBRACKET
84 | . LBRACE assoc_list RBRACE
85 | . paren_expr
86 paren_expr: . LPAREN expr RPAREN
89 expr_list: expr_list . COMMA
90 | expr_list . expr
FUNC shift, and go to state 7
NONE shift, and go to state 11
IDENT shift, and go to state 12
INT shift, and go to state 13
FLOAT shift, and go to state 14
STRING shift, and go to state 15
MINUS shift, and go to state 16
BNOT shift, and go to state 17
LNOT shift, and go to state 18
LBRACE shift, and go to state 19
LPAREN shift, and go to state 20
LBRACKET shift, and go to state 21
RBRACKET shift, and go to state 123
COMMA shift, and go to state 124
POUND shift, and go to state 22
expr go to state 125
logic_expr go to state 25
ulogic_expr go to state 26
rel_expr go to state 27
term_expr go to state 28
factor_expr go to state 29
power_expr go to state 30
binary_expr go to state 31
ubinary_expr go to state 32
ulen_expr go to state 33
call_expr go to state 34
funcdecl_expr go to state 35
index_expr go to state 36
ex_index_expr go to state 37
ref_expr go to state 38
lit_expr go to state 39
gen_expr go to state 40
paren_expr go to state 41
State 68
61 ubinary_expr: ulen_expr . [PLUS, MINUS, STAR, SLASH, PERCENT, DSTAR, BAND, BOR, BXOR, LAND, LOR, EQUAL, NEQUAL, LESS, GREATER, LESSEQ, GREATEREQ, RSHIFT, LSHIFT, LBRACKET, DOT]
62 ulen_expr: POUND ulen_expr . [$end, IF, THEN, ELSE, WHILE, FOR, DO, FUNC, RETURN, BREAK, CONTINUE, END, NONE, IDENT, INT, FLOAT, STRING, PLUS, MINUS, STAR, SLASH, PERCENT, DSTAR, BAND, BOR, BXOR, BNOT, LAND, LOR, LNOT, EQUAL, NEQUAL, LESS, GREATER, LESSEQ, GREATEREQ, RSHIFT, LSHIFT, LBRACE, RBRACE, LPAREN, RPAREN, LBRACKET, RBRACKET, DOT, SEMICOLON, COMMA, POUND]
PLUS reduce using rule 61 (ubinary_expr)
PLUS [reduce using rule 62 (ulen_expr)]
MINUS reduce using rule 61 (ubinary_expr)
MINUS [reduce using rule 62 (ulen_expr)]
STAR reduce using rule 61 (ubinary_expr)
STAR [reduce using rule 62 (ulen_expr)]
SLASH reduce using rule 61 (ubinary_expr)
SLASH [reduce using rule 62 (ulen_expr)]
PERCENT reduce using rule 61 (ubinary_expr)
PERCENT [reduce using rule 62 (ulen_expr)]
DSTAR reduce using rule 61 (ubinary_expr)
DSTAR [reduce using rule 62 (ulen_expr)]
BAND reduce using rule 61 (ubinary_expr)
BAND [reduce using rule 62 (ulen_expr)]
BOR reduce using rule 61 (ubinary_expr)
BOR [reduce using rule 62 (ulen_expr)]
BXOR reduce using rule 61 (ubinary_expr)
BXOR [reduce using rule 62 (ulen_expr)]
LAND reduce using rule 61 (ubinary_expr)
LAND [reduce using rule 62 (ulen_expr)]
LOR reduce using rule 61 (ubinary_expr)
LOR [reduce using rule 62 (ulen_expr)]
EQUAL reduce using rule 61 (ubinary_expr)
EQUAL [reduce using rule 62 (ulen_expr)]
NEQUAL reduce using rule 61 (ubinary_expr)
NEQUAL [reduce using rule 62 (ulen_expr)]
LESS reduce using rule 61 (ubinary_expr)
LESS [reduce using rule 62 (ulen_expr)]
GREATER reduce using rule 61 (ubinary_expr)
GREATER [reduce using rule 62 (ulen_expr)]
LESSEQ reduce using rule 61 (ubinary_expr)
LESSEQ [reduce using rule 62 (ulen_expr)]
GREATEREQ reduce using rule 61 (ubinary_expr)
GREATEREQ [reduce using rule 62 (ulen_expr)]
RSHIFT reduce using rule 61 (ubinary_expr)
RSHIFT [reduce using rule 62 (ulen_expr)]
LSHIFT reduce using rule 61 (ubinary_expr)
LSHIFT [reduce using rule 62 (ulen_expr)]
LBRACKET reduce using rule 61 (ubinary_expr)
LBRACKET [reduce using rule 62 (ulen_expr)]
DOT reduce using rule 61 (ubinary_expr)
DOT [reduce using rule 62 (ulen_expr)]
$default reduce using rule 62 (ulen_expr)
State 69
13 stmt: stmt SEMICOLON .
$default reduce using rule 13 (stmt)
State 70
14 expr: . IDENT ASSIGN expr
15 | . IDENT ASSIGNPLUS expr
16 | . IDENT ASSIGNMINUS expr
17 | . IDENT ASSIGNSTAR expr
18 | . IDENT ASSIGNSLASH expr
19 | . IDENT ASSIGNDSTAR expr
20 | . IDENT ASSIGNBAND expr
21 | . IDENT ASSIGNBOR expr
22 | . IDENT ASSIGNBXOR expr
23 | . ex_index_expr ASSIGN expr
24 | . ex_index_expr ASSIGNPLUS expr
25 | . ex_index_expr ASSIGNMINUS expr
26 | . ex_index_expr ASSIGNSTAR expr
27 | . ex_index_expr ASSIGNSLASH expr
28 | . ex_index_expr ASSIGNDSTAR expr
29 | . ex_index_expr ASSIGNBAND expr
30 | . ex_index_expr ASSIGNBOR expr
31 | . ex_index_expr ASSIGNBXOR expr
32 | . logic_expr
33 logic_expr: . logic_expr LAND ulogic_expr
34 | . logic_expr LOR ulogic_expr
35 | . ulogic_expr
36 ulogic_expr: . LNOT ulogic_expr
37 | . rel_expr
38 rel_expr: . term_expr EQUAL rel_expr
39 | . term_expr NEQUAL rel_expr
40 | . term_expr LESS rel_expr
41 | . term_expr GREATER rel_expr
42 | . term_expr LESSEQ rel_expr
43 | . term_expr GREATEREQ rel_expr
44 | . term_expr
45 term_expr: . term_expr PLUS factor_expr
46 | . term_expr MINUS factor_expr
47 | . factor_expr
48 factor_expr: . factor_expr STAR power_expr
49 | . factor_expr SLASH power_expr
50 | . factor_expr PERCENT power_expr
51 | . power_expr
52 power_expr: . power_expr DSTAR power_expr
53 | . binary_expr
54 binary_expr: . binary_expr BAND binary_expr
55 | . binary_expr BOR binary_expr
56 | . binary_expr BXOR binary_expr
57 | . binary_expr LSHIFT binary_expr
58 | . binary_expr RSHIFT binary_expr
59 | . ubinary_expr
60 ubinary_expr: . BNOT ubinary_expr
61 | . ulen_expr
62 ulen_expr: . POUND ulen_expr
63 | . call_expr
64 call_expr: . call_expr LPAREN expr_list RPAREN
65 | . call_expr COLON IDENT LPAREN expr_list RPAREN
66 | . funcdecl_expr
67 funcdecl_expr: . FUNC IDENT LPAREN ident_list RPAREN stmt_list END
68 | . FUNC LPAREN ident_list RPAREN stmt_list END
69 | . index_expr
70 index_expr: . expr LBRACKET expr RBRACKET
70 | expr LBRACKET . expr RBRACKET
71 | . expr DOT IDENT
72 | . ref_expr
73 ex_index_expr: . expr LBRACKET expr RBRACKET
73 | expr LBRACKET . expr RBRACKET
74 | . expr DOT IDENT
75 ref_expr: . IDENT
76 | . lit_expr
77 lit_expr: . INT
78 | . MINUS INT
79 | . FLOAT
80 | . STRING
81 | . NONE
82 | . gen_expr
83 gen_expr: . LBRACKET expr_list RBRACKET
84 | . LBRACE assoc_list RBRACE
85 | . paren_expr
86 paren_expr: . LPAREN expr RPAREN
FUNC shift, and go to state 7
NONE shift, and go to state 11
IDENT shift, and go to state 12
INT shift, and go to state 13
FLOAT shift, and go to state 14
STRING shift, and go to state 15
MINUS shift, and go to state 16
BNOT shift, and go to state 17
LNOT shift, and go to state 18
LBRACE shift, and go to state 19
LPAREN shift, and go to state 20
LBRACKET shift, and go to state 21
POUND shift, and go to state 22
expr go to state 126
logic_expr go to state 25
ulogic_expr go to state 26
rel_expr go to state 27
term_expr go to state 28
factor_expr go to state 29
power_expr go to state 30
binary_expr go to state 31
ubinary_expr go to state 32
ulen_expr go to state 33
call_expr go to state 34
funcdecl_expr go to state 35
index_expr go to state 36
ex_index_expr go to state 37
ref_expr go to state 38
lit_expr go to state 39
gen_expr go to state 40
paren_expr go to state 41
State 71
71 index_expr: expr DOT . IDENT
74 ex_index_expr: expr DOT . IDENT
IDENT shift, and go to state 127
State 72
14 expr: . IDENT ASSIGN expr
15 | . IDENT ASSIGNPLUS expr
16 | . IDENT ASSIGNMINUS expr
17 | . IDENT ASSIGNSTAR expr
18 | . IDENT ASSIGNSLASH expr
19 | . IDENT ASSIGNDSTAR expr
20 | . IDENT ASSIGNBAND expr
21 | . IDENT ASSIGNBOR expr
22 | . IDENT ASSIGNBXOR expr
23 | . ex_index_expr ASSIGN expr
24 | . ex_index_expr ASSIGNPLUS expr
25 | . ex_index_expr ASSIGNMINUS expr
26 | . ex_index_expr ASSIGNSTAR expr
27 | . ex_index_expr ASSIGNSLASH expr
28 | . ex_index_expr ASSIGNDSTAR expr
29 | . ex_index_expr ASSIGNBAND expr
30 | . ex_index_expr ASSIGNBOR expr
31 | . ex_index_expr ASSIGNBXOR expr
32 | . logic_expr
33 logic_expr: . logic_expr LAND ulogic_expr
33 | logic_expr LAND . ulogic_expr
34 | . logic_expr LOR ulogic_expr
35 | . ulogic_expr
36 ulogic_expr: . LNOT ulogic_expr
37 | . rel_expr
38 rel_expr: . term_expr EQUAL rel_expr
39 | . term_expr NEQUAL rel_expr
40 | . term_expr LESS rel_expr
41 | . term_expr GREATER rel_expr
42 | . term_expr LESSEQ rel_expr
43 | . term_expr GREATEREQ rel_expr
44 | . term_expr
45 term_expr: . term_expr PLUS factor_expr
46 | . term_expr MINUS factor_expr
47 | . factor_expr
48 factor_expr: . factor_expr STAR power_expr
49 | . factor_expr SLASH power_expr
50 | . factor_expr PERCENT power_expr
51 | . power_expr
52 power_expr: . power_expr DSTAR power_expr
53 | . binary_expr
54 binary_expr: . binary_expr BAND binary_expr
55 | . binary_expr BOR binary_expr
56 | . binary_expr BXOR binary_expr
57 | . binary_expr LSHIFT binary_expr
58 | . binary_expr RSHIFT binary_expr
59 | . ubinary_expr
60 ubinary_expr: . BNOT ubinary_expr
61 | . ulen_expr
62 ulen_expr: . POUND ulen_expr
63 | . call_expr
64 call_expr: . call_expr LPAREN expr_list RPAREN
65 | . call_expr COLON IDENT LPAREN expr_list RPAREN
66 | . funcdecl_expr
67 funcdecl_expr: . FUNC IDENT LPAREN ident_list RPAREN stmt_list END
68 | . FUNC LPAREN ident_list RPAREN stmt_list END
69 | . index_expr
70 index_expr: . expr LBRACKET expr RBRACKET
71 | . expr DOT IDENT
72 | . ref_expr
73 ex_index_expr: . expr LBRACKET expr RBRACKET
74 | . expr DOT IDENT
75 ref_expr: . IDENT
76 | . lit_expr
77 lit_expr: . INT
78 | . MINUS INT
79 | . FLOAT
80 | . STRING
81 | . NONE
82 | . gen_expr
83 gen_expr: . LBRACKET expr_list RBRACKET
84 | . LBRACE assoc_list RBRACE
85 | . paren_expr
86 paren_expr: . LPAREN expr RPAREN
FUNC shift, and go to state 7
NONE shift, and go to state 11
IDENT shift, and go to state 12
INT shift, and go to state 13
FLOAT shift, and go to state 14
STRING shift, and go to state 15
MINUS shift, and go to state 16
BNOT shift, and go to state 17
LNOT shift, and go to state 18
LBRACE shift, and go to state 19
LPAREN shift, and go to state 20
LBRACKET shift, and go to state 21
POUND shift, and go to state 22
expr go to state 58
logic_expr go to state 25
ulogic_expr go to state 128
rel_expr go to state 27
term_expr go to state 28
factor_expr go to state 29
power_expr go to state 30
binary_expr go to state 31
ubinary_expr go to state 32
ulen_expr go to state 33
call_expr go to state 34
funcdecl_expr go to state 35
index_expr go to state 36
ex_index_expr go to state 37
ref_expr go to state 38
lit_expr go to state 39
gen_expr go to state 40
paren_expr go to state 41
State 73
14 expr: . IDENT ASSIGN expr
15 | . IDENT ASSIGNPLUS expr
16 | . IDENT ASSIGNMINUS expr
17 | . IDENT ASSIGNSTAR expr
18 | . IDENT ASSIGNSLASH expr
19 | . IDENT ASSIGNDSTAR expr
20 | . IDENT ASSIGNBAND expr
21 | . IDENT ASSIGNBOR expr
22 | . IDENT ASSIGNBXOR expr
23 | . ex_index_expr ASSIGN expr
24 | . ex_index_expr ASSIGNPLUS expr
25 | . ex_index_expr ASSIGNMINUS expr
26 | . ex_index_expr ASSIGNSTAR expr
27 | . ex_index_expr ASSIGNSLASH expr
28 | . ex_index_expr ASSIGNDSTAR expr
29 | . ex_index_expr ASSIGNBAND expr
30 | . ex_index_expr ASSIGNBOR expr
31 | . ex_index_expr ASSIGNBXOR expr
32 | . logic_expr
33 logic_expr: . logic_expr LAND ulogic_expr
34 | . logic_expr LOR ulogic_expr
34 | logic_expr LOR . ulogic_expr
35 | . ulogic_expr
36 ulogic_expr: . LNOT ulogic_expr
37 | . rel_expr
38 rel_expr: . term_expr EQUAL rel_expr
39 | . term_expr NEQUAL rel_expr
40 | . term_expr LESS rel_expr
41 | . term_expr GREATER rel_expr
42 | . term_expr LESSEQ rel_expr
43 | . term_expr GREATEREQ rel_expr
44 | . term_expr
45 term_expr: . term_expr PLUS factor_expr
46 | . term_expr MINUS factor_expr
47 | . factor_expr
48 factor_expr: . factor_expr STAR power_expr
49 | . factor_expr SLASH power_expr
50 | . factor_expr PERCENT power_expr
51 | . power_expr
52 power_expr: . power_expr DSTAR power_expr
53 | . binary_expr
54 binary_expr: . binary_expr BAND binary_expr
55 | . binary_expr BOR binary_expr
56 | . binary_expr BXOR binary_expr
57 | . binary_expr LSHIFT binary_expr
58 | . binary_expr RSHIFT binary_expr
59 | . ubinary_expr
60 ubinary_expr: . BNOT ubinary_expr
61 | . ulen_expr
62 ulen_expr: . POUND ulen_expr
63 | . call_expr
64 call_expr: . call_expr LPAREN expr_list RPAREN
65 | . call_expr COLON IDENT LPAREN expr_list RPAREN
66 | . funcdecl_expr
67 funcdecl_expr: . FUNC IDENT LPAREN ident_list RPAREN stmt_list END
68 | . FUNC LPAREN ident_list RPAREN stmt_list END
69 | . index_expr
70 index_expr: . expr LBRACKET expr RBRACKET
71 | . expr DOT IDENT
72 | . ref_expr
73 ex_index_expr: . expr LBRACKET expr RBRACKET
74 | . expr DOT IDENT
75 ref_expr: . IDENT
76 | . lit_expr
77 lit_expr: . INT
78 | . MINUS INT
79 | . FLOAT
80 | . STRING
81 | . NONE
82 | . gen_expr
83 gen_expr: . LBRACKET expr_list RBRACKET
84 | . LBRACE assoc_list RBRACE
85 | . paren_expr
86 paren_expr: . LPAREN expr RPAREN
FUNC shift, and go to state 7
NONE shift, and go to state 11
IDENT shift, and go to state 12
INT shift, and go to state 13
FLOAT shift, and go to state 14
STRING shift, and go to state 15
MINUS shift, and go to state 16
BNOT shift, and go to state 17
LNOT shift, and go to state 18
LBRACE shift, and go to state 19
LPAREN shift, and go to state 20
LBRACKET shift, and go to state 21
POUND shift, and go to state 22
expr go to state 58
logic_expr go to state 25
ulogic_expr go to state 129
rel_expr go to state 27
term_expr go to state 28
factor_expr go to state 29
power_expr go to state 30
binary_expr go to state 31
ubinary_expr go to state 32
ulen_expr go to state 33
call_expr go to state 34
funcdecl_expr go to state 35
index_expr go to state 36
ex_index_expr go to state 37
ref_expr go to state 38
lit_expr go to state 39
gen_expr go to state 40
paren_expr go to state 41
State 74
14 expr: . IDENT ASSIGN expr
15 | . IDENT ASSIGNPLUS expr
16 | . IDENT ASSIGNMINUS expr
17 | . IDENT ASSIGNSTAR expr
18 | . IDENT ASSIGNSLASH expr
19 | . IDENT ASSIGNDSTAR expr
20 | . IDENT ASSIGNBAND expr
21 | . IDENT ASSIGNBOR expr
22 | . IDENT ASSIGNBXOR expr
23 | . ex_index_expr ASSIGN expr
24 | . ex_index_expr ASSIGNPLUS expr
25 | . ex_index_expr ASSIGNMINUS expr
26 | . ex_index_expr ASSIGNSTAR expr
27 | . ex_index_expr ASSIGNSLASH expr
28 | . ex_index_expr ASSIGNDSTAR expr
29 | . ex_index_expr ASSIGNBAND expr
30 | . ex_index_expr ASSIGNBOR expr
31 | . ex_index_expr ASSIGNBXOR expr
32 | . logic_expr
33 logic_expr: . logic_expr LAND ulogic_expr
34 | . logic_expr LOR ulogic_expr
35 | . ulogic_expr
36 ulogic_expr: . LNOT ulogic_expr
37 | . rel_expr
38 rel_expr: . term_expr EQUAL rel_expr
39 | . term_expr NEQUAL rel_expr
40 | . term_expr LESS rel_expr
41 | . term_expr GREATER rel_expr
42 | . term_expr LESSEQ rel_expr
43 | . term_expr GREATEREQ rel_expr
44 | . term_expr
45 term_expr: . term_expr PLUS factor_expr
45 | term_expr PLUS . factor_expr
46 | . term_expr MINUS factor_expr
47 | . factor_expr
48 factor_expr: . factor_expr STAR power_expr
49 | . factor_expr SLASH power_expr
50 | . factor_expr PERCENT power_expr
51 | . power_expr
52 power_expr: . power_expr DSTAR power_expr
53 | . binary_expr
54 binary_expr: . binary_expr BAND binary_expr
55 | . binary_expr BOR binary_expr
56 | . binary_expr BXOR binary_expr
57 | . binary_expr LSHIFT binary_expr
58 | . binary_expr RSHIFT binary_expr
59 | . ubinary_expr
60 ubinary_expr: . BNOT ubinary_expr
61 | . ulen_expr
62 ulen_expr: . POUND ulen_expr
63 | . call_expr
64 call_expr: . call_expr LPAREN expr_list RPAREN
65 | . call_expr COLON IDENT LPAREN expr_list RPAREN
66 | . funcdecl_expr
67 funcdecl_expr: . FUNC IDENT LPAREN ident_list RPAREN stmt_list END
68 | . FUNC LPAREN ident_list RPAREN stmt_list END
69 | . index_expr
70 index_expr: . expr LBRACKET expr RBRACKET
71 | . expr DOT IDENT
72 | . ref_expr
73 ex_index_expr: . expr LBRACKET expr RBRACKET
74 | . expr DOT IDENT
75 ref_expr: . IDENT
76 | . lit_expr
77 lit_expr: . INT
78 | . MINUS INT
79 | . FLOAT
80 | . STRING
81 | . NONE
82 | . gen_expr
83 gen_expr: . LBRACKET expr_list RBRACKET
84 | . LBRACE assoc_list RBRACE
85 | . paren_expr
86 paren_expr: . LPAREN expr RPAREN
FUNC shift, and go to state 7
NONE shift, and go to state 11
IDENT shift, and go to state 12
INT shift, and go to state 13
FLOAT shift, and go to state 14
STRING shift, and go to state 15
MINUS shift, and go to state 16
BNOT shift, and go to state 17
LNOT shift, and go to state 18
LBRACE shift, and go to state 19
LPAREN shift, and go to state 20
LBRACKET shift, and go to state 21
POUND shift, and go to state 22
expr go to state 58
logic_expr go to state 25
ulogic_expr go to state 26
rel_expr go to state 27
term_expr go to state 28
factor_expr go to state 130
power_expr go to state 30
binary_expr go to state 31
ubinary_expr go to state 32
ulen_expr go to state 33
call_expr go to state 34
funcdecl_expr go to state 35
index_expr go to state 36
ex_index_expr go to state 37
ref_expr go to state 38
lit_expr go to state 39
gen_expr go to state 40
paren_expr go to state 41
State 75
14 expr: . IDENT ASSIGN expr
15 | . IDENT ASSIGNPLUS expr
16 | . IDENT ASSIGNMINUS expr
17 | . IDENT ASSIGNSTAR expr
18 | . IDENT ASSIGNSLASH expr
19 | . IDENT ASSIGNDSTAR expr
20 | . IDENT ASSIGNBAND expr
21 | . IDENT ASSIGNBOR expr
22 | . IDENT ASSIGNBXOR expr