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.
 
 
 
 
 
 

9644 lines
351 KiB

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