Grammar Parser.y - 20/01/2020 21:25:19
1 $accept: fsmstart EOF
;
2 fsmstart: rulelist
;
3 ruleend: SEMICOLON
;
4 rulelist: rule ruleend rulelist
5 | /* empty */
;
6 identlist: IDENTIFIER identlist2
;
7 identlist2: COMMA identlist
8 | /* empty */
;
9 actionlist: LBRACE identlist RBRACE
10 | /* empty */
;
11 eventinverse: EXCL
12 | /* empty */
;
13 eventpeek: LANGLE NUMBER RANGLE
14 | /* empty */
;
15 eventlist: eventinverse IDENTIFIER eventpeek eventlist2
;
16 eventlist2: COMMA eventlist
17 | /* empty */
;
18 rule: compoundRule
19 | eventlist actionlist
;
20 compoundRule: LPAR rule RPAR actionlist
21 | rule STAR actionlist
22 | rule PLUS actionlist
23 | rule LBRACK NUMBER RBRACK actionlist
24 | rule PERIOD rule actionlist
25 | rule PIPE rule actionlist
;
State 0
Kernel Items
1 $accept: . fsmstart EOF
Parser Actions
LPAR shift, and go to state 8
EXCL shift, and go to state 41
IDENTIFIER reduce using rule 12 (Erasing eventinverse)
EOF reduce using rule 5 (Erasing rulelist)
Transitions
fsmstart go to state 1
rulelist go to state 3
rule go to state 4
compoundRule go to state 7
eventlist go to state 33
eventinverse go to state 35
State 1
Kernel Items
1 $accept: fsmstart . EOF
Parser Actions
EOF shift, and go to state 2
State 2
Kernel Items
1 $accept: fsmstart EOF .
-lookahead: { }
Parser Actions
error reduce using rule 1 ($accept)
EOF reduce using rule 1 ($accept)
COMMENT reduce using rule 1 ($accept)
IDENTIFIER reduce using rule 1 ($accept)
DOLLAR reduce using rule 1 ($accept)
COMMA reduce using rule 1 ($accept)
HASH reduce using rule 1 ($accept)
COLON reduce using rule 1 ($accept)
SEMICOLON reduce using rule 1 ($accept)
ARROW reduce using rule 1 ($accept)
NUMBER reduce using rule 1 ($accept)
LPAR reduce using rule 1 ($accept)
RPAR reduce using rule 1 ($accept)
STAR reduce using rule 1 ($accept)
LBRACK reduce using rule 1 ($accept)
RBRACK reduce using rule 1 ($accept)
LBRACE reduce using rule 1 ($accept)
RBRACE reduce using rule 1 ($accept)
LANGLE reduce using rule 1 ($accept)
RANGLE reduce using rule 1 ($accept)
PIPE reduce using rule 1 ($accept)
PERIOD reduce using rule 1 ($accept)
EXCL reduce using rule 1 ($accept)
QST reduce using rule 1 ($accept)
PLUS reduce using rule 1 ($accept)
MINUS reduce using rule 1 ($accept)
EOL reduce using rule 1 ($accept)
State 3
Kernel Items
2 fsmstart: rulelist .
-lookahead: { EOF }
Parser Actions
EOF reduce using rule 2 (fsmstart)
State 4
Kernel Items
4 rulelist: rule . ruleend rulelist
21 compoundRule: rule . STAR actionlist
22 compoundRule: rule . PLUS actionlist
23 compoundRule: rule . LBRACK NUMBER RBRACK actionlist
24 compoundRule: rule . PERIOD rule actionlist
25 compoundRule: rule . PIPE rule actionlist
Parser Actions
STAR shift, and go to state 19
PLUS shift, and go to state 21
LBRACK shift, and go to state 23
PERIOD shift, and go to state 27
PIPE shift, and go to state 30
SEMICOLON shift, and go to state 45
Transitions
ruleend go to state 5
State 5
Kernel Items
4 rulelist: rule ruleend . rulelist
Parser Actions
LPAR shift, and go to state 8
EXCL shift, and go to state 41
IDENTIFIER reduce using rule 12 (Erasing eventinverse)
EOF reduce using rule 5 (Erasing rulelist)
Transitions
rulelist go to state 6
rule go to state 4
compoundRule go to state 7
eventlist go to state 33
eventinverse go to state 35
State 6
Kernel Items
4 rulelist: rule ruleend rulelist .
-lookahead: { EOF }
Parser Actions
EOF reduce using rule 4 (rulelist)
State 7
Kernel Items
18 rule: compoundRule .
-lookahead: { STAR, PLUS, LBRACK, PERIOD, PIPE, SEMICOLON, RPAR, LBRACE }
Parser Actions
STAR reduce using rule 18 (rule)
PLUS reduce using rule 18 (rule)
LBRACK reduce using rule 18 (rule)
PERIOD reduce using rule 18 (rule)
PIPE reduce using rule 18 (rule)
SEMICOLON reduce using rule 18 (rule)
RPAR reduce using rule 18 (rule)
LBRACE reduce using rule 18 (rule)
State 8
Kernel Items
20 compoundRule: LPAR . rule RPAR actionlist
Parser Actions
LPAR shift, and go to state 8
EXCL shift, and go to state 41
IDENTIFIER reduce using rule 12 (Erasing eventinverse)
Transitions
rule go to state 9
compoundRule go to state 7
eventlist go to state 33
eventinverse go to state 35
State 9
Kernel Items
20 compoundRule: LPAR rule . RPAR actionlist
21 compoundRule: rule . STAR actionlist
22 compoundRule: rule . PLUS actionlist
23 compoundRule: rule . LBRACK NUMBER RBRACK actionlist
24 compoundRule: rule . PERIOD rule actionlist
25 compoundRule: rule . PIPE rule actionlist
Parser Actions
RPAR shift, and go to state 10
STAR shift, and go to state 19
PLUS shift, and go to state 21
LBRACK shift, and go to state 23
PERIOD shift, and go to state 27
PIPE shift, and go to state 30
State 10
Kernel Items
20 compoundRule: LPAR rule RPAR . actionlist
Parser Actions
LBRACE shift, and go to state 12
STAR reduce using rule 10 (Erasing actionlist)
PLUS reduce using rule 10 (Erasing actionlist)
LBRACK reduce using rule 10 (Erasing actionlist)
PERIOD reduce using rule 10 (Erasing actionlist)
PIPE reduce using rule 10 (Erasing actionlist)
SEMICOLON reduce using rule 10 (Erasing actionlist)
RPAR reduce using rule 10 (Erasing actionlist)
Transitions
actionlist go to state 11
State 11
Kernel Items
20 compoundRule: LPAR rule RPAR actionlist .
-lookahead: { STAR, PLUS, LBRACK, PERIOD, PIPE, SEMICOLON, RPAR, LBRACE }
Parser Actions
STAR reduce using rule 20 (compoundRule)
PLUS reduce using rule 20 (compoundRule)
LBRACK reduce using rule 20 (compoundRule)
PERIOD reduce using rule 20 (compoundRule)
PIPE reduce using rule 20 (compoundRule)
SEMICOLON reduce using rule 20 (compoundRule)
RPAR reduce using rule 20 (compoundRule)
LBRACE reduce using rule 20 (compoundRule)
State 12
Kernel Items
9 actionlist: LBRACE . identlist RBRACE
Parser Actions
IDENTIFIER shift, and go to state 15
Transitions
identlist go to state 13
State 13
Kernel Items
9 actionlist: LBRACE identlist . RBRACE
Parser Actions
RBRACE shift, and go to state 14
State 14
Kernel Items
9 actionlist: LBRACE identlist RBRACE .
-lookahead: { STAR, PLUS, LBRACK, PERIOD, PIPE, SEMICOLON, RPAR, LBRACE }
Parser Actions
STAR reduce using rule 9 (actionlist)
PLUS reduce using rule 9 (actionlist)
LBRACK reduce using rule 9 (actionlist)
PERIOD reduce using rule 9 (actionlist)
PIPE reduce using rule 9 (actionlist)
SEMICOLON reduce using rule 9 (actionlist)
RPAR reduce using rule 9 (actionlist)
LBRACE reduce using rule 9 (actionlist)
State 15
Kernel Items
6 identlist: IDENTIFIER . identlist2
Parser Actions
COMMA shift, and go to state 17
RBRACE reduce using rule 8 (Erasing identlist2)
Transitions
identlist2 go to state 16
State 16
Kernel Items
6 identlist: IDENTIFIER identlist2 .
-lookahead: { RBRACE }
Parser Actions
RBRACE reduce using rule 6 (identlist)
State 17
Kernel Items
7 identlist2: COMMA . identlist
Parser Actions
IDENTIFIER shift, and go to state 15
Transitions
identlist go to state 18
State 18
Kernel Items
7 identlist2: COMMA identlist .
-lookahead: { RBRACE }
Parser Actions
RBRACE reduce using rule 7 (identlist2)
State 19
Kernel Items
21 compoundRule: rule STAR . actionlist
Parser Actions
LBRACE shift, and go to state 12
STAR reduce using rule 10 (Erasing actionlist)
PLUS reduce using rule 10 (Erasing actionlist)
LBRACK reduce using rule 10 (Erasing actionlist)
PERIOD reduce using rule 10 (Erasing actionlist)
PIPE reduce using rule 10 (Erasing actionlist)
SEMICOLON reduce using rule 10 (Erasing actionlist)
RPAR reduce using rule 10 (Erasing actionlist)
Transitions
actionlist go to state 20
State 20
Kernel Items
21 compoundRule: rule STAR actionlist .
-lookahead: { STAR, PLUS, LBRACK, PERIOD, PIPE, SEMICOLON, RPAR, LBRACE }
Parser Actions
STAR reduce using rule 21 (compoundRule)
PLUS reduce using rule 21 (compoundRule)
LBRACK reduce using rule 21 (compoundRule)
PERIOD reduce using rule 21 (compoundRule)
PIPE reduce using rule 21 (compoundRule)
SEMICOLON reduce using rule 21 (compoundRule)
RPAR reduce using rule 21 (compoundRule)
LBRACE reduce using rule 21 (compoundRule)
State 21
Kernel Items
22 compoundRule: rule PLUS . actionlist
Parser Actions
LBRACE shift, and go to state 12
STAR reduce using rule 10 (Erasing actionlist)
PLUS reduce using rule 10 (Erasing actionlist)
LBRACK reduce using rule 10 (Erasing actionlist)
PERIOD reduce using rule 10 (Erasing actionlist)
PIPE reduce using rule 10 (Erasing actionlist)
SEMICOLON reduce using rule 10 (Erasing actionlist)
RPAR reduce using rule 10 (Erasing actionlist)
Transitions
actionlist go to state 22
State 22
Kernel Items
22 compoundRule: rule PLUS actionlist .
-lookahead: { STAR, PLUS, LBRACK, PERIOD, PIPE, SEMICOLON, RPAR, LBRACE }
Parser Actions
STAR reduce using rule 22 (compoundRule)
PLUS reduce using rule 22 (compoundRule)
LBRACK reduce using rule 22 (compoundRule)
PERIOD reduce using rule 22 (compoundRule)
PIPE reduce using rule 22 (compoundRule)
SEMICOLON reduce using rule 22 (compoundRule)
RPAR reduce using rule 22 (compoundRule)
LBRACE reduce using rule 22 (compoundRule)
State 23
Kernel Items
23 compoundRule: rule LBRACK . NUMBER RBRACK actionlist
Parser Actions
NUMBER shift, and go to state 24
State 24
Kernel Items
23 compoundRule: rule LBRACK NUMBER . RBRACK actionlist
Parser Actions
RBRACK shift, and go to state 25
State 25
Kernel Items
23 compoundRule: rule LBRACK NUMBER RBRACK . actionlist
Parser Actions
LBRACE shift, and go to state 12
STAR reduce using rule 10 (Erasing actionlist)
PLUS reduce using rule 10 (Erasing actionlist)
LBRACK reduce using rule 10 (Erasing actionlist)
PERIOD reduce using rule 10 (Erasing actionlist)
PIPE reduce using rule 10 (Erasing actionlist)
SEMICOLON reduce using rule 10 (Erasing actionlist)
RPAR reduce using rule 10 (Erasing actionlist)
Transitions
actionlist go to state 26
State 26
Kernel Items
23 compoundRule: rule LBRACK NUMBER RBRACK actionlist .
-lookahead: { STAR, PLUS, LBRACK, PERIOD, PIPE, SEMICOLON, RPAR, LBRACE }
Parser Actions
STAR reduce using rule 23 (compoundRule)
PLUS reduce using rule 23 (compoundRule)
LBRACK reduce using rule 23 (compoundRule)
PERIOD reduce using rule 23 (compoundRule)
PIPE reduce using rule 23 (compoundRule)
SEMICOLON reduce using rule 23 (compoundRule)
RPAR reduce using rule 23 (compoundRule)
LBRACE reduce using rule 23 (compoundRule)
State 27
Kernel Items
24 compoundRule: rule PERIOD . rule actionlist
Parser Actions
LPAR shift, and go to state 8
EXCL shift, and go to state 41
IDENTIFIER reduce using rule 12 (Erasing eventinverse)
Transitions
rule go to state 28
compoundRule go to state 7
eventlist go to state 33
eventinverse go to state 35
State 28
Kernel Items
24 compoundRule: rule PERIOD rule . actionlist
21 compoundRule: rule . STAR actionlist
22 compoundRule: rule . PLUS actionlist
23 compoundRule: rule . LBRACK NUMBER RBRACK actionlist
24 compoundRule: rule . PERIOD rule actionlist
25 compoundRule: rule . PIPE rule actionlist
Parser Actions
STAR shift, and go to state 19
PLUS shift, and go to state 21
LBRACK shift, and go to state 23
PERIOD shift, and go to state 27
PIPE shift, and go to state 30
LBRACE shift, and go to state 12
SEMICOLON reduce using rule 10 (Erasing actionlist)
RPAR reduce using rule 10 (Erasing actionlist)
Transitions
actionlist go to state 29
State 29
Kernel Items
24 compoundRule: rule PERIOD rule actionlist .
-lookahead: { STAR, PLUS, LBRACK, PERIOD, PIPE, SEMICOLON, RPAR, LBRACE }
Parser Actions
STAR reduce using rule 24 (compoundRule)
PLUS reduce using rule 24 (compoundRule)
LBRACK reduce using rule 24 (compoundRule)
PERIOD reduce using rule 24 (compoundRule)
PIPE reduce using rule 24 (compoundRule)
SEMICOLON reduce using rule 24 (compoundRule)
RPAR reduce using rule 24 (compoundRule)
LBRACE reduce using rule 24 (compoundRule)
State 30
Kernel Items
25 compoundRule: rule PIPE . rule actionlist
Parser Actions
LPAR shift, and go to state 8
EXCL shift, and go to state 41
IDENTIFIER reduce using rule 12 (Erasing eventinverse)
Transitions
rule go to state 31
compoundRule go to state 7
eventlist go to state 33
eventinverse go to state 35
State 31
Kernel Items
25 compoundRule: rule PIPE rule . actionlist
21 compoundRule: rule . STAR actionlist
22 compoundRule: rule . PLUS actionlist
23 compoundRule: rule . LBRACK NUMBER RBRACK actionlist
24 compoundRule: rule . PERIOD rule actionlist
25 compoundRule: rule . PIPE rule actionlist
Parser Actions
STAR shift, and go to state 19
PLUS shift, and go to state 21
LBRACK shift, and go to state 23
PERIOD shift, and go to state 27
PIPE shift, and go to state 30
LBRACE shift, and go to state 12
SEMICOLON reduce using rule 10 (Erasing actionlist)
RPAR reduce using rule 10 (Erasing actionlist)
Transitions
actionlist go to state 32
State 32
Kernel Items
25 compoundRule: rule PIPE rule actionlist .
-lookahead: { STAR, PLUS, LBRACK, PERIOD, PIPE, SEMICOLON, RPAR, LBRACE }
Parser Actions
STAR reduce using rule 25 (compoundRule)
PLUS reduce using rule 25 (compoundRule)
LBRACK reduce using rule 25 (compoundRule)
PERIOD reduce using rule 25 (compoundRule)
PIPE reduce using rule 25 (compoundRule)
SEMICOLON reduce using rule 25 (compoundRule)
RPAR reduce using rule 25 (compoundRule)
LBRACE reduce using rule 25 (compoundRule)
State 33
Kernel Items
19 rule: eventlist . actionlist
Parser Actions
LBRACE shift, and go to state 12
STAR reduce using rule 10 (Erasing actionlist)
PLUS reduce using rule 10 (Erasing actionlist)
LBRACK reduce using rule 10 (Erasing actionlist)
PERIOD reduce using rule 10 (Erasing actionlist)
PIPE reduce using rule 10 (Erasing actionlist)
SEMICOLON reduce using rule 10 (Erasing actionlist)
RPAR reduce using rule 10 (Erasing actionlist)
Transitions
actionlist go to state 34
State 34
Kernel Items
19 rule: eventlist actionlist .
-lookahead: { STAR, PLUS, LBRACK, PERIOD, PIPE, SEMICOLON, RPAR, LBRACE }
Parser Actions
STAR reduce using rule 19 (rule)
PLUS reduce using rule 19 (rule)
LBRACK reduce using rule 19 (rule)
PERIOD reduce using rule 19 (rule)
PIPE reduce using rule 19 (rule)
SEMICOLON reduce using rule 19 (rule)
RPAR reduce using rule 19 (rule)
LBRACE reduce using rule 19 (rule)
State 35
Kernel Items
15 eventlist: eventinverse . IDENTIFIER eventpeek eventlist2
Parser Actions
IDENTIFIER shift, and go to state 36
State 36
Kernel Items
15 eventlist: eventinverse IDENTIFIER . eventpeek eventlist2
Parser Actions
LANGLE shift, and go to state 42
COMMA reduce using rule 14 (Erasing eventpeek)
LBRACE reduce using rule 14 (Erasing eventpeek)
STAR reduce using rule 14 (Erasing eventpeek)
PLUS reduce using rule 14 (Erasing eventpeek)
LBRACK reduce using rule 14 (Erasing eventpeek)
PERIOD reduce using rule 14 (Erasing eventpeek)
PIPE reduce using rule 14 (Erasing eventpeek)
SEMICOLON reduce using rule 14 (Erasing eventpeek)
RPAR reduce using rule 14 (Erasing eventpeek)
Transitions
eventpeek go to state 37
State 37
Kernel Items
15 eventlist: eventinverse IDENTIFIER eventpeek . eventlist2
Parser Actions
COMMA shift, and go to state 39
LBRACE reduce using rule 17 (Erasing eventlist2)
STAR reduce using rule 17 (Erasing eventlist2)
PLUS reduce using rule 17 (Erasing eventlist2)
LBRACK reduce using rule 17 (Erasing eventlist2)
PERIOD reduce using rule 17 (Erasing eventlist2)
PIPE reduce using rule 17 (Erasing eventlist2)
SEMICOLON reduce using rule 17 (Erasing eventlist2)
RPAR reduce using rule 17 (Erasing eventlist2)
Transitions
eventlist2 go to state 38
State 38
Kernel Items
15 eventlist: eventinverse IDENTIFIER eventpeek eventlist2 .
-lookahead: { LBRACE, STAR, PLUS, LBRACK, PERIOD, PIPE, SEMICOLON, RPAR }
Parser Actions
LBRACE reduce using rule 15 (eventlist)
STAR reduce using rule 15 (eventlist)
PLUS reduce using rule 15 (eventlist)
LBRACK reduce using rule 15 (eventlist)
PERIOD reduce using rule 15 (eventlist)
PIPE reduce using rule 15 (eventlist)
SEMICOLON reduce using rule 15 (eventlist)
RPAR reduce using rule 15 (eventlist)
State 39
Kernel Items
16 eventlist2: COMMA . eventlist
Parser Actions
EXCL shift, and go to state 41
IDENTIFIER reduce using rule 12 (Erasing eventinverse)
Transitions
eventlist go to state 40
eventinverse go to state 35
State 40
Kernel Items
16 eventlist2: COMMA eventlist .
-lookahead: { LBRACE, STAR, PLUS, LBRACK, PERIOD, PIPE, SEMICOLON, RPAR }
Parser Actions
LBRACE reduce using rule 16 (eventlist2)
STAR reduce using rule 16 (eventlist2)
PLUS reduce using rule 16 (eventlist2)
LBRACK reduce using rule 16 (eventlist2)
PERIOD reduce using rule 16 (eventlist2)
PIPE reduce using rule 16 (eventlist2)
SEMICOLON reduce using rule 16 (eventlist2)
RPAR reduce using rule 16 (eventlist2)
State 41
Kernel Items
11 eventinverse: EXCL .
-lookahead: { IDENTIFIER }
Parser Actions
IDENTIFIER reduce using rule 11 (eventinverse)
State 42
Kernel Items
13 eventpeek: LANGLE . NUMBER RANGLE
Parser Actions
NUMBER shift, and go to state 43
State 43
Kernel Items
13 eventpeek: LANGLE NUMBER . RANGLE
Parser Actions
RANGLE shift, and go to state 44
State 44
Kernel Items
13 eventpeek: LANGLE NUMBER RANGLE .
-lookahead: { COMMA, LBRACE, STAR, PLUS, LBRACK, PERIOD, PIPE, SEMICOLON,
RPAR }
Parser Actions
COMMA reduce using rule 13 (eventpeek)
LBRACE reduce using rule 13 (eventpeek)
STAR reduce using rule 13 (eventpeek)
PLUS reduce using rule 13 (eventpeek)
LBRACK reduce using rule 13 (eventpeek)
PERIOD reduce using rule 13 (eventpeek)
PIPE reduce using rule 13 (eventpeek)
SEMICOLON reduce using rule 13 (eventpeek)
RPAR reduce using rule 13 (eventpeek)
State 45
Kernel Items
3 ruleend: SEMICOLON .
-lookahead: { LPAR, EXCL, IDENTIFIER, EOF }
Parser Actions
LPAR reduce using rule 3 (ruleend)
EXCL reduce using rule 3 (ruleend)
IDENTIFIER reduce using rule 3 (ruleend)
EOF reduce using rule 3 (ruleend)