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.
 
 
 
 
 
 

10646 lines
401 KiB

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