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.
 
 
 
 
 
 

10337 lines
371 KiB

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