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)