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.
 
 
 
 
 
 

9127 lines
329 KiB

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