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.
 
 
 
 
 
 

11972 lines
451 KiB

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