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.
 
 
 
 
 
 

11032 lines
416 KiB

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