Files
Construction-of-Compilers/Project-02/parser.out
Jan-Niclas Loosen cb0c7ac2e0 Fix parsing error
2025-11-20 22:09:31 +01:00

1140 lines
34 KiB
Plaintext

Created by PLY version 3.11 (http://www.dabeaz.com/ply)
Grammar
Rule 0 S' -> E
Rule 1 E -> LET D IN E
Rule 2 E -> ID
Rule 3 E -> ID LPAREN A RPAREN
Rule 4 E -> E AOP E
Rule 5 E -> LPAREN E RPAREN
Rule 6 E -> CONST
Rule 7 E -> ID ASSIGN E
Rule 8 E -> E SEMICOLON E
Rule 9 E -> IF B THEN E ELSE E
Rule 10 E -> WHILE B DO LBRACE E RBRACE
Rule 11 A -> E
Rule 12 A -> A COMMA E
Rule 13 D -> ID LPAREN V RPAREN LBRACE E RBRACE
Rule 14 D -> D D
Rule 15 V -> ID
Rule 16 V -> V COMMA ID
Rule 17 B -> E EQOP E
Rule 18 B -> E COMP E
Rule 19 B -> B EQOP B
Rule 20 B -> B LOP B
Rule 21 B -> TRUE
Rule 22 B -> FALSE
Rule 23 B -> LPAREN B RPAREN
Terminals, with rules where they appear
AOP : 4
ASSIGN : 7
COMMA : 12 16
COMP : 18
CONST : 6
DO : 10
ELSE : 9
EQOP : 17 19
FALSE : 22
ID : 2 3 7 13 15 16
IF : 9
IN : 1
LBRACE : 10 13
LET : 1
LOP : 20
LPAREN : 3 5 13 23
RBRACE : 10 13
RPAREN : 3 5 13 23
SEMICOLON : 8
THEN : 9
TRUE : 21
WHILE : 10
error :
Nonterminals, with rules where they appear
A : 3 12
B : 9 10 19 19 20 20 23
D : 1 14 14
E : 1 4 4 5 7 8 8 9 9 10 11 12 13 17 17 18 18 0
V : 13 16
Parsing method: LALR
state 0
(0) S' -> . E
(1) E -> . LET D IN E
(2) E -> . ID
(3) E -> . ID LPAREN A RPAREN
(4) E -> . E AOP E
(5) E -> . LPAREN E RPAREN
(6) E -> . CONST
(7) E -> . ID ASSIGN E
(8) E -> . E SEMICOLON E
(9) E -> . IF B THEN E ELSE E
(10) E -> . WHILE B DO LBRACE E RBRACE
LET shift and go to state 2
ID shift and go to state 3
LPAREN shift and go to state 4
CONST shift and go to state 5
IF shift and go to state 6
WHILE shift and go to state 7
E shift and go to state 1
state 1
(0) S' -> E .
(4) E -> E . AOP E
(8) E -> E . SEMICOLON E
AOP shift and go to state 8
SEMICOLON shift and go to state 9
state 2
(1) E -> LET . D IN E
(13) D -> . ID LPAREN V RPAREN LBRACE E RBRACE
(14) D -> . D D
ID shift and go to state 11
D shift and go to state 10
state 3
(2) E -> ID .
(3) E -> ID . LPAREN A RPAREN
(7) E -> ID . ASSIGN E
AOP reduce using rule 2 (E -> ID .)
SEMICOLON reduce using rule 2 (E -> ID .)
$end reduce using rule 2 (E -> ID .)
RPAREN reduce using rule 2 (E -> ID .)
EQOP reduce using rule 2 (E -> ID .)
COMP reduce using rule 2 (E -> ID .)
COMMA reduce using rule 2 (E -> ID .)
ELSE reduce using rule 2 (E -> ID .)
THEN reduce using rule 2 (E -> ID .)
LOP reduce using rule 2 (E -> ID .)
DO reduce using rule 2 (E -> ID .)
RBRACE reduce using rule 2 (E -> ID .)
LPAREN shift and go to state 12
ASSIGN shift and go to state 13
state 4
(5) E -> LPAREN . E RPAREN
(1) E -> . LET D IN E
(2) E -> . ID
(3) E -> . ID LPAREN A RPAREN
(4) E -> . E AOP E
(5) E -> . LPAREN E RPAREN
(6) E -> . CONST
(7) E -> . ID ASSIGN E
(8) E -> . E SEMICOLON E
(9) E -> . IF B THEN E ELSE E
(10) E -> . WHILE B DO LBRACE E RBRACE
LET shift and go to state 2
ID shift and go to state 3
LPAREN shift and go to state 4
CONST shift and go to state 5
IF shift and go to state 6
WHILE shift and go to state 7
E shift and go to state 14
state 5
(6) E -> CONST .
AOP reduce using rule 6 (E -> CONST .)
SEMICOLON reduce using rule 6 (E -> CONST .)
$end reduce using rule 6 (E -> CONST .)
RPAREN reduce using rule 6 (E -> CONST .)
EQOP reduce using rule 6 (E -> CONST .)
COMP reduce using rule 6 (E -> CONST .)
COMMA reduce using rule 6 (E -> CONST .)
ELSE reduce using rule 6 (E -> CONST .)
THEN reduce using rule 6 (E -> CONST .)
LOP reduce using rule 6 (E -> CONST .)
DO reduce using rule 6 (E -> CONST .)
RBRACE reduce using rule 6 (E -> CONST .)
state 6
(9) E -> IF . B THEN E ELSE E
(17) B -> . E EQOP E
(18) B -> . E COMP E
(19) B -> . B EQOP B
(20) B -> . B LOP B
(21) B -> . TRUE
(22) B -> . FALSE
(23) B -> . LPAREN B RPAREN
(1) E -> . LET D IN E
(2) E -> . ID
(3) E -> . ID LPAREN A RPAREN
(4) E -> . E AOP E
(5) E -> . LPAREN E RPAREN
(6) E -> . CONST
(7) E -> . ID ASSIGN E
(8) E -> . E SEMICOLON E
(9) E -> . IF B THEN E ELSE E
(10) E -> . WHILE B DO LBRACE E RBRACE
TRUE shift and go to state 17
FALSE shift and go to state 18
LPAREN shift and go to state 19
LET shift and go to state 2
ID shift and go to state 3
CONST shift and go to state 5
IF shift and go to state 6
WHILE shift and go to state 7
B shift and go to state 15
E shift and go to state 16
state 7
(10) E -> WHILE . B DO LBRACE E RBRACE
(17) B -> . E EQOP E
(18) B -> . E COMP E
(19) B -> . B EQOP B
(20) B -> . B LOP B
(21) B -> . TRUE
(22) B -> . FALSE
(23) B -> . LPAREN B RPAREN
(1) E -> . LET D IN E
(2) E -> . ID
(3) E -> . ID LPAREN A RPAREN
(4) E -> . E AOP E
(5) E -> . LPAREN E RPAREN
(6) E -> . CONST
(7) E -> . ID ASSIGN E
(8) E -> . E SEMICOLON E
(9) E -> . IF B THEN E ELSE E
(10) E -> . WHILE B DO LBRACE E RBRACE
TRUE shift and go to state 17
FALSE shift and go to state 18
LPAREN shift and go to state 19
LET shift and go to state 2
ID shift and go to state 3
CONST shift and go to state 5
IF shift and go to state 6
WHILE shift and go to state 7
B shift and go to state 20
E shift and go to state 16
state 8
(4) E -> E AOP . E
(1) E -> . LET D IN E
(2) E -> . ID
(3) E -> . ID LPAREN A RPAREN
(4) E -> . E AOP E
(5) E -> . LPAREN E RPAREN
(6) E -> . CONST
(7) E -> . ID ASSIGN E
(8) E -> . E SEMICOLON E
(9) E -> . IF B THEN E ELSE E
(10) E -> . WHILE B DO LBRACE E RBRACE
LET shift and go to state 2
ID shift and go to state 3
LPAREN shift and go to state 4
CONST shift and go to state 5
IF shift and go to state 6
WHILE shift and go to state 7
E shift and go to state 21
state 9
(8) E -> E SEMICOLON . E
(1) E -> . LET D IN E
(2) E -> . ID
(3) E -> . ID LPAREN A RPAREN
(4) E -> . E AOP E
(5) E -> . LPAREN E RPAREN
(6) E -> . CONST
(7) E -> . ID ASSIGN E
(8) E -> . E SEMICOLON E
(9) E -> . IF B THEN E ELSE E
(10) E -> . WHILE B DO LBRACE E RBRACE
LET shift and go to state 2
ID shift and go to state 3
LPAREN shift and go to state 4
CONST shift and go to state 5
IF shift and go to state 6
WHILE shift and go to state 7
E shift and go to state 22
state 10
(1) E -> LET D . IN E
(14) D -> D . D
(13) D -> . ID LPAREN V RPAREN LBRACE E RBRACE
(14) D -> . D D
IN shift and go to state 24
ID shift and go to state 11
D shift and go to state 23
state 11
(13) D -> ID . LPAREN V RPAREN LBRACE E RBRACE
LPAREN shift and go to state 25
state 12
(3) E -> ID LPAREN . A RPAREN
(11) A -> . E
(12) A -> . A COMMA E
(1) E -> . LET D IN E
(2) E -> . ID
(3) E -> . ID LPAREN A RPAREN
(4) E -> . E AOP E
(5) E -> . LPAREN E RPAREN
(6) E -> . CONST
(7) E -> . ID ASSIGN E
(8) E -> . E SEMICOLON E
(9) E -> . IF B THEN E ELSE E
(10) E -> . WHILE B DO LBRACE E RBRACE
LET shift and go to state 2
ID shift and go to state 3
LPAREN shift and go to state 4
CONST shift and go to state 5
IF shift and go to state 6
WHILE shift and go to state 7
A shift and go to state 26
E shift and go to state 27
state 13
(7) E -> ID ASSIGN . E
(1) E -> . LET D IN E
(2) E -> . ID
(3) E -> . ID LPAREN A RPAREN
(4) E -> . E AOP E
(5) E -> . LPAREN E RPAREN
(6) E -> . CONST
(7) E -> . ID ASSIGN E
(8) E -> . E SEMICOLON E
(9) E -> . IF B THEN E ELSE E
(10) E -> . WHILE B DO LBRACE E RBRACE
LET shift and go to state 2
ID shift and go to state 3
LPAREN shift and go to state 4
CONST shift and go to state 5
IF shift and go to state 6
WHILE shift and go to state 7
E shift and go to state 28
state 14
(5) E -> LPAREN E . RPAREN
(4) E -> E . AOP E
(8) E -> E . SEMICOLON E
RPAREN shift and go to state 29
AOP shift and go to state 8
SEMICOLON shift and go to state 9
state 15
(9) E -> IF B . THEN E ELSE E
(19) B -> B . EQOP B
(20) B -> B . LOP B
THEN shift and go to state 30
EQOP shift and go to state 31
LOP shift and go to state 32
state 16
(17) B -> E . EQOP E
(18) B -> E . COMP E
(4) E -> E . AOP E
(8) E -> E . SEMICOLON E
EQOP shift and go to state 33
COMP shift and go to state 34
AOP shift and go to state 8
SEMICOLON shift and go to state 9
state 17
(21) B -> TRUE .
THEN reduce using rule 21 (B -> TRUE .)
EQOP reduce using rule 21 (B -> TRUE .)
LOP reduce using rule 21 (B -> TRUE .)
DO reduce using rule 21 (B -> TRUE .)
RPAREN reduce using rule 21 (B -> TRUE .)
state 18
(22) B -> FALSE .
THEN reduce using rule 22 (B -> FALSE .)
EQOP reduce using rule 22 (B -> FALSE .)
LOP reduce using rule 22 (B -> FALSE .)
DO reduce using rule 22 (B -> FALSE .)
RPAREN reduce using rule 22 (B -> FALSE .)
state 19
(23) B -> LPAREN . B RPAREN
(5) E -> LPAREN . E RPAREN
(17) B -> . E EQOP E
(18) B -> . E COMP E
(19) B -> . B EQOP B
(20) B -> . B LOP B
(21) B -> . TRUE
(22) B -> . FALSE
(23) B -> . LPAREN B RPAREN
(1) E -> . LET D IN E
(2) E -> . ID
(3) E -> . ID LPAREN A RPAREN
(4) E -> . E AOP E
(5) E -> . LPAREN E RPAREN
(6) E -> . CONST
(7) E -> . ID ASSIGN E
(8) E -> . E SEMICOLON E
(9) E -> . IF B THEN E ELSE E
(10) E -> . WHILE B DO LBRACE E RBRACE
TRUE shift and go to state 17
FALSE shift and go to state 18
LPAREN shift and go to state 19
LET shift and go to state 2
ID shift and go to state 3
CONST shift and go to state 5
IF shift and go to state 6
WHILE shift and go to state 7
B shift and go to state 35
E shift and go to state 36
state 20
(10) E -> WHILE B . DO LBRACE E RBRACE
(19) B -> B . EQOP B
(20) B -> B . LOP B
DO shift and go to state 37
EQOP shift and go to state 31
LOP shift and go to state 32
state 21
(4) E -> E AOP E .
(4) E -> E . AOP E
(8) E -> E . SEMICOLON E
AOP reduce using rule 4 (E -> E AOP E .)
SEMICOLON reduce using rule 4 (E -> E AOP E .)
$end reduce using rule 4 (E -> E AOP E .)
RPAREN reduce using rule 4 (E -> E AOP E .)
EQOP reduce using rule 4 (E -> E AOP E .)
COMP reduce using rule 4 (E -> E AOP E .)
COMMA reduce using rule 4 (E -> E AOP E .)
ELSE reduce using rule 4 (E -> E AOP E .)
THEN reduce using rule 4 (E -> E AOP E .)
LOP reduce using rule 4 (E -> E AOP E .)
DO reduce using rule 4 (E -> E AOP E .)
RBRACE reduce using rule 4 (E -> E AOP E .)
! AOP [ shift and go to state 8 ]
! SEMICOLON [ shift and go to state 9 ]
state 22
(8) E -> E SEMICOLON E .
(4) E -> E . AOP E
(8) E -> E . SEMICOLON E
! shift/reduce conflict for AOP resolved as shift
! shift/reduce conflict for SEMICOLON resolved as shift
$end reduce using rule 8 (E -> E SEMICOLON E .)
RPAREN reduce using rule 8 (E -> E SEMICOLON E .)
EQOP reduce using rule 8 (E -> E SEMICOLON E .)
COMP reduce using rule 8 (E -> E SEMICOLON E .)
COMMA reduce using rule 8 (E -> E SEMICOLON E .)
ELSE reduce using rule 8 (E -> E SEMICOLON E .)
THEN reduce using rule 8 (E -> E SEMICOLON E .)
LOP reduce using rule 8 (E -> E SEMICOLON E .)
DO reduce using rule 8 (E -> E SEMICOLON E .)
RBRACE reduce using rule 8 (E -> E SEMICOLON E .)
AOP shift and go to state 8
SEMICOLON shift and go to state 9
! AOP [ reduce using rule 8 (E -> E SEMICOLON E .) ]
! SEMICOLON [ reduce using rule 8 (E -> E SEMICOLON E .) ]
state 23
(14) D -> D D .
(14) D -> D . D
(13) D -> . ID LPAREN V RPAREN LBRACE E RBRACE
(14) D -> . D D
! shift/reduce conflict for ID resolved as shift
IN reduce using rule 14 (D -> D D .)
ID shift and go to state 11
! ID [ reduce using rule 14 (D -> D D .) ]
D shift and go to state 23
state 24
(1) E -> LET D IN . E
(1) E -> . LET D IN E
(2) E -> . ID
(3) E -> . ID LPAREN A RPAREN
(4) E -> . E AOP E
(5) E -> . LPAREN E RPAREN
(6) E -> . CONST
(7) E -> . ID ASSIGN E
(8) E -> . E SEMICOLON E
(9) E -> . IF B THEN E ELSE E
(10) E -> . WHILE B DO LBRACE E RBRACE
LET shift and go to state 2
ID shift and go to state 3
LPAREN shift and go to state 4
CONST shift and go to state 5
IF shift and go to state 6
WHILE shift and go to state 7
E shift and go to state 38
state 25
(13) D -> ID LPAREN . V RPAREN LBRACE E RBRACE
(15) V -> . ID
(16) V -> . V COMMA ID
ID shift and go to state 39
V shift and go to state 40
state 26
(3) E -> ID LPAREN A . RPAREN
(12) A -> A . COMMA E
RPAREN shift and go to state 41
COMMA shift and go to state 42
state 27
(11) A -> E .
(4) E -> E . AOP E
(8) E -> E . SEMICOLON E
RPAREN reduce using rule 11 (A -> E .)
COMMA reduce using rule 11 (A -> E .)
AOP shift and go to state 8
SEMICOLON shift and go to state 9
state 28
(7) E -> ID ASSIGN E .
(4) E -> E . AOP E
(8) E -> E . SEMICOLON E
! shift/reduce conflict for AOP resolved as shift
! shift/reduce conflict for SEMICOLON resolved as shift
$end reduce using rule 7 (E -> ID ASSIGN E .)
RPAREN reduce using rule 7 (E -> ID ASSIGN E .)
EQOP reduce using rule 7 (E -> ID ASSIGN E .)
COMP reduce using rule 7 (E -> ID ASSIGN E .)
COMMA reduce using rule 7 (E -> ID ASSIGN E .)
ELSE reduce using rule 7 (E -> ID ASSIGN E .)
THEN reduce using rule 7 (E -> ID ASSIGN E .)
LOP reduce using rule 7 (E -> ID ASSIGN E .)
DO reduce using rule 7 (E -> ID ASSIGN E .)
RBRACE reduce using rule 7 (E -> ID ASSIGN E .)
AOP shift and go to state 8
SEMICOLON shift and go to state 9
! AOP [ reduce using rule 7 (E -> ID ASSIGN E .) ]
! SEMICOLON [ reduce using rule 7 (E -> ID ASSIGN E .) ]
state 29
(5) E -> LPAREN E RPAREN .
AOP reduce using rule 5 (E -> LPAREN E RPAREN .)
SEMICOLON reduce using rule 5 (E -> LPAREN E RPAREN .)
$end reduce using rule 5 (E -> LPAREN E RPAREN .)
RPAREN reduce using rule 5 (E -> LPAREN E RPAREN .)
EQOP reduce using rule 5 (E -> LPAREN E RPAREN .)
COMP reduce using rule 5 (E -> LPAREN E RPAREN .)
COMMA reduce using rule 5 (E -> LPAREN E RPAREN .)
ELSE reduce using rule 5 (E -> LPAREN E RPAREN .)
THEN reduce using rule 5 (E -> LPAREN E RPAREN .)
LOP reduce using rule 5 (E -> LPAREN E RPAREN .)
DO reduce using rule 5 (E -> LPAREN E RPAREN .)
RBRACE reduce using rule 5 (E -> LPAREN E RPAREN .)
state 30
(9) E -> IF B THEN . E ELSE E
(1) E -> . LET D IN E
(2) E -> . ID
(3) E -> . ID LPAREN A RPAREN
(4) E -> . E AOP E
(5) E -> . LPAREN E RPAREN
(6) E -> . CONST
(7) E -> . ID ASSIGN E
(8) E -> . E SEMICOLON E
(9) E -> . IF B THEN E ELSE E
(10) E -> . WHILE B DO LBRACE E RBRACE
LET shift and go to state 2
ID shift and go to state 3
LPAREN shift and go to state 4
CONST shift and go to state 5
IF shift and go to state 6
WHILE shift and go to state 7
E shift and go to state 43
state 31
(19) B -> B EQOP . B
(17) B -> . E EQOP E
(18) B -> . E COMP E
(19) B -> . B EQOP B
(20) B -> . B LOP B
(21) B -> . TRUE
(22) B -> . FALSE
(23) B -> . LPAREN B RPAREN
(1) E -> . LET D IN E
(2) E -> . ID
(3) E -> . ID LPAREN A RPAREN
(4) E -> . E AOP E
(5) E -> . LPAREN E RPAREN
(6) E -> . CONST
(7) E -> . ID ASSIGN E
(8) E -> . E SEMICOLON E
(9) E -> . IF B THEN E ELSE E
(10) E -> . WHILE B DO LBRACE E RBRACE
TRUE shift and go to state 17
FALSE shift and go to state 18
LPAREN shift and go to state 19
LET shift and go to state 2
ID shift and go to state 3
CONST shift and go to state 5
IF shift and go to state 6
WHILE shift and go to state 7
B shift and go to state 44
E shift and go to state 16
state 32
(20) B -> B LOP . B
(17) B -> . E EQOP E
(18) B -> . E COMP E
(19) B -> . B EQOP B
(20) B -> . B LOP B
(21) B -> . TRUE
(22) B -> . FALSE
(23) B -> . LPAREN B RPAREN
(1) E -> . LET D IN E
(2) E -> . ID
(3) E -> . ID LPAREN A RPAREN
(4) E -> . E AOP E
(5) E -> . LPAREN E RPAREN
(6) E -> . CONST
(7) E -> . ID ASSIGN E
(8) E -> . E SEMICOLON E
(9) E -> . IF B THEN E ELSE E
(10) E -> . WHILE B DO LBRACE E RBRACE
TRUE shift and go to state 17
FALSE shift and go to state 18
LPAREN shift and go to state 19
LET shift and go to state 2
ID shift and go to state 3
CONST shift and go to state 5
IF shift and go to state 6
WHILE shift and go to state 7
B shift and go to state 45
E shift and go to state 16
state 33
(17) B -> E EQOP . E
(1) E -> . LET D IN E
(2) E -> . ID
(3) E -> . ID LPAREN A RPAREN
(4) E -> . E AOP E
(5) E -> . LPAREN E RPAREN
(6) E -> . CONST
(7) E -> . ID ASSIGN E
(8) E -> . E SEMICOLON E
(9) E -> . IF B THEN E ELSE E
(10) E -> . WHILE B DO LBRACE E RBRACE
LET shift and go to state 2
ID shift and go to state 3
LPAREN shift and go to state 4
CONST shift and go to state 5
IF shift and go to state 6
WHILE shift and go to state 7
E shift and go to state 46
state 34
(18) B -> E COMP . E
(1) E -> . LET D IN E
(2) E -> . ID
(3) E -> . ID LPAREN A RPAREN
(4) E -> . E AOP E
(5) E -> . LPAREN E RPAREN
(6) E -> . CONST
(7) E -> . ID ASSIGN E
(8) E -> . E SEMICOLON E
(9) E -> . IF B THEN E ELSE E
(10) E -> . WHILE B DO LBRACE E RBRACE
LET shift and go to state 2
ID shift and go to state 3
LPAREN shift and go to state 4
CONST shift and go to state 5
IF shift and go to state 6
WHILE shift and go to state 7
E shift and go to state 47
state 35
(23) B -> LPAREN B . RPAREN
(19) B -> B . EQOP B
(20) B -> B . LOP B
RPAREN shift and go to state 48
EQOP shift and go to state 31
LOP shift and go to state 32
state 36
(5) E -> LPAREN E . RPAREN
(17) B -> E . EQOP E
(18) B -> E . COMP E
(4) E -> E . AOP E
(8) E -> E . SEMICOLON E
RPAREN shift and go to state 29
EQOP shift and go to state 33
COMP shift and go to state 34
AOP shift and go to state 8
SEMICOLON shift and go to state 9
state 37
(10) E -> WHILE B DO . LBRACE E RBRACE
LBRACE shift and go to state 49
state 38
(1) E -> LET D IN E .
(4) E -> E . AOP E
(8) E -> E . SEMICOLON E
! shift/reduce conflict for AOP resolved as shift
! shift/reduce conflict for SEMICOLON resolved as shift
$end reduce using rule 1 (E -> LET D IN E .)
RPAREN reduce using rule 1 (E -> LET D IN E .)
EQOP reduce using rule 1 (E -> LET D IN E .)
COMP reduce using rule 1 (E -> LET D IN E .)
COMMA reduce using rule 1 (E -> LET D IN E .)
ELSE reduce using rule 1 (E -> LET D IN E .)
THEN reduce using rule 1 (E -> LET D IN E .)
LOP reduce using rule 1 (E -> LET D IN E .)
DO reduce using rule 1 (E -> LET D IN E .)
RBRACE reduce using rule 1 (E -> LET D IN E .)
AOP shift and go to state 8
SEMICOLON shift and go to state 9
! AOP [ reduce using rule 1 (E -> LET D IN E .) ]
! SEMICOLON [ reduce using rule 1 (E -> LET D IN E .) ]
state 39
(15) V -> ID .
RPAREN reduce using rule 15 (V -> ID .)
COMMA reduce using rule 15 (V -> ID .)
state 40
(13) D -> ID LPAREN V . RPAREN LBRACE E RBRACE
(16) V -> V . COMMA ID
RPAREN shift and go to state 50
COMMA shift and go to state 51
state 41
(3) E -> ID LPAREN A RPAREN .
AOP reduce using rule 3 (E -> ID LPAREN A RPAREN .)
SEMICOLON reduce using rule 3 (E -> ID LPAREN A RPAREN .)
$end reduce using rule 3 (E -> ID LPAREN A RPAREN .)
RPAREN reduce using rule 3 (E -> ID LPAREN A RPAREN .)
EQOP reduce using rule 3 (E -> ID LPAREN A RPAREN .)
COMP reduce using rule 3 (E -> ID LPAREN A RPAREN .)
COMMA reduce using rule 3 (E -> ID LPAREN A RPAREN .)
ELSE reduce using rule 3 (E -> ID LPAREN A RPAREN .)
THEN reduce using rule 3 (E -> ID LPAREN A RPAREN .)
LOP reduce using rule 3 (E -> ID LPAREN A RPAREN .)
DO reduce using rule 3 (E -> ID LPAREN A RPAREN .)
RBRACE reduce using rule 3 (E -> ID LPAREN A RPAREN .)
state 42
(12) A -> A COMMA . E
(1) E -> . LET D IN E
(2) E -> . ID
(3) E -> . ID LPAREN A RPAREN
(4) E -> . E AOP E
(5) E -> . LPAREN E RPAREN
(6) E -> . CONST
(7) E -> . ID ASSIGN E
(8) E -> . E SEMICOLON E
(9) E -> . IF B THEN E ELSE E
(10) E -> . WHILE B DO LBRACE E RBRACE
LET shift and go to state 2
ID shift and go to state 3
LPAREN shift and go to state 4
CONST shift and go to state 5
IF shift and go to state 6
WHILE shift and go to state 7
E shift and go to state 52
state 43
(9) E -> IF B THEN E . ELSE E
(4) E -> E . AOP E
(8) E -> E . SEMICOLON E
ELSE shift and go to state 53
AOP shift and go to state 8
SEMICOLON shift and go to state 9
state 44
(19) B -> B EQOP B .
(19) B -> B . EQOP B
(20) B -> B . LOP B
THEN reduce using rule 19 (B -> B EQOP B .)
EQOP reduce using rule 19 (B -> B EQOP B .)
LOP reduce using rule 19 (B -> B EQOP B .)
DO reduce using rule 19 (B -> B EQOP B .)
RPAREN reduce using rule 19 (B -> B EQOP B .)
! EQOP [ shift and go to state 31 ]
! LOP [ shift and go to state 32 ]
state 45
(20) B -> B LOP B .
(19) B -> B . EQOP B
(20) B -> B . LOP B
! shift/reduce conflict for EQOP resolved as shift
! shift/reduce conflict for LOP resolved as shift
THEN reduce using rule 20 (B -> B LOP B .)
DO reduce using rule 20 (B -> B LOP B .)
RPAREN reduce using rule 20 (B -> B LOP B .)
EQOP shift and go to state 31
LOP shift and go to state 32
! EQOP [ reduce using rule 20 (B -> B LOP B .) ]
! LOP [ reduce using rule 20 (B -> B LOP B .) ]
state 46
(17) B -> E EQOP E .
(4) E -> E . AOP E
(8) E -> E . SEMICOLON E
THEN reduce using rule 17 (B -> E EQOP E .)
EQOP reduce using rule 17 (B -> E EQOP E .)
LOP reduce using rule 17 (B -> E EQOP E .)
DO reduce using rule 17 (B -> E EQOP E .)
RPAREN reduce using rule 17 (B -> E EQOP E .)
AOP shift and go to state 8
SEMICOLON shift and go to state 9
state 47
(18) B -> E COMP E .
(4) E -> E . AOP E
(8) E -> E . SEMICOLON E
THEN reduce using rule 18 (B -> E COMP E .)
EQOP reduce using rule 18 (B -> E COMP E .)
LOP reduce using rule 18 (B -> E COMP E .)
DO reduce using rule 18 (B -> E COMP E .)
RPAREN reduce using rule 18 (B -> E COMP E .)
AOP shift and go to state 8
SEMICOLON shift and go to state 9
state 48
(23) B -> LPAREN B RPAREN .
THEN reduce using rule 23 (B -> LPAREN B RPAREN .)
EQOP reduce using rule 23 (B -> LPAREN B RPAREN .)
LOP reduce using rule 23 (B -> LPAREN B RPAREN .)
DO reduce using rule 23 (B -> LPAREN B RPAREN .)
RPAREN reduce using rule 23 (B -> LPAREN B RPAREN .)
state 49
(10) E -> WHILE B DO LBRACE . E RBRACE
(1) E -> . LET D IN E
(2) E -> . ID
(3) E -> . ID LPAREN A RPAREN
(4) E -> . E AOP E
(5) E -> . LPAREN E RPAREN
(6) E -> . CONST
(7) E -> . ID ASSIGN E
(8) E -> . E SEMICOLON E
(9) E -> . IF B THEN E ELSE E
(10) E -> . WHILE B DO LBRACE E RBRACE
LET shift and go to state 2
ID shift and go to state 3
LPAREN shift and go to state 4
CONST shift and go to state 5
IF shift and go to state 6
WHILE shift and go to state 7
E shift and go to state 54
state 50
(13) D -> ID LPAREN V RPAREN . LBRACE E RBRACE
LBRACE shift and go to state 55
state 51
(16) V -> V COMMA . ID
ID shift and go to state 56
state 52
(12) A -> A COMMA E .
(4) E -> E . AOP E
(8) E -> E . SEMICOLON E
RPAREN reduce using rule 12 (A -> A COMMA E .)
COMMA reduce using rule 12 (A -> A COMMA E .)
AOP shift and go to state 8
SEMICOLON shift and go to state 9
state 53
(9) E -> IF B THEN E ELSE . E
(1) E -> . LET D IN E
(2) E -> . ID
(3) E -> . ID LPAREN A RPAREN
(4) E -> . E AOP E
(5) E -> . LPAREN E RPAREN
(6) E -> . CONST
(7) E -> . ID ASSIGN E
(8) E -> . E SEMICOLON E
(9) E -> . IF B THEN E ELSE E
(10) E -> . WHILE B DO LBRACE E RBRACE
LET shift and go to state 2
ID shift and go to state 3
LPAREN shift and go to state 4
CONST shift and go to state 5
IF shift and go to state 6
WHILE shift and go to state 7
E shift and go to state 57
state 54
(10) E -> WHILE B DO LBRACE E . RBRACE
(4) E -> E . AOP E
(8) E -> E . SEMICOLON E
RBRACE shift and go to state 58
AOP shift and go to state 8
SEMICOLON shift and go to state 9
state 55
(13) D -> ID LPAREN V RPAREN LBRACE . E RBRACE
(1) E -> . LET D IN E
(2) E -> . ID
(3) E -> . ID LPAREN A RPAREN
(4) E -> . E AOP E
(5) E -> . LPAREN E RPAREN
(6) E -> . CONST
(7) E -> . ID ASSIGN E
(8) E -> . E SEMICOLON E
(9) E -> . IF B THEN E ELSE E
(10) E -> . WHILE B DO LBRACE E RBRACE
LET shift and go to state 2
ID shift and go to state 3
LPAREN shift and go to state 4
CONST shift and go to state 5
IF shift and go to state 6
WHILE shift and go to state 7
E shift and go to state 59
state 56
(16) V -> V COMMA ID .
RPAREN reduce using rule 16 (V -> V COMMA ID .)
COMMA reduce using rule 16 (V -> V COMMA ID .)
state 57
(9) E -> IF B THEN E ELSE E .
(4) E -> E . AOP E
(8) E -> E . SEMICOLON E
! shift/reduce conflict for AOP resolved as shift
! shift/reduce conflict for SEMICOLON resolved as shift
$end reduce using rule 9 (E -> IF B THEN E ELSE E .)
RPAREN reduce using rule 9 (E -> IF B THEN E ELSE E .)
EQOP reduce using rule 9 (E -> IF B THEN E ELSE E .)
COMP reduce using rule 9 (E -> IF B THEN E ELSE E .)
COMMA reduce using rule 9 (E -> IF B THEN E ELSE E .)
ELSE reduce using rule 9 (E -> IF B THEN E ELSE E .)
THEN reduce using rule 9 (E -> IF B THEN E ELSE E .)
LOP reduce using rule 9 (E -> IF B THEN E ELSE E .)
DO reduce using rule 9 (E -> IF B THEN E ELSE E .)
RBRACE reduce using rule 9 (E -> IF B THEN E ELSE E .)
AOP shift and go to state 8
SEMICOLON shift and go to state 9
! AOP [ reduce using rule 9 (E -> IF B THEN E ELSE E .) ]
! SEMICOLON [ reduce using rule 9 (E -> IF B THEN E ELSE E .) ]
state 58
(10) E -> WHILE B DO LBRACE E RBRACE .
AOP reduce using rule 10 (E -> WHILE B DO LBRACE E RBRACE .)
SEMICOLON reduce using rule 10 (E -> WHILE B DO LBRACE E RBRACE .)
$end reduce using rule 10 (E -> WHILE B DO LBRACE E RBRACE .)
RPAREN reduce using rule 10 (E -> WHILE B DO LBRACE E RBRACE .)
EQOP reduce using rule 10 (E -> WHILE B DO LBRACE E RBRACE .)
COMP reduce using rule 10 (E -> WHILE B DO LBRACE E RBRACE .)
COMMA reduce using rule 10 (E -> WHILE B DO LBRACE E RBRACE .)
ELSE reduce using rule 10 (E -> WHILE B DO LBRACE E RBRACE .)
THEN reduce using rule 10 (E -> WHILE B DO LBRACE E RBRACE .)
LOP reduce using rule 10 (E -> WHILE B DO LBRACE E RBRACE .)
DO reduce using rule 10 (E -> WHILE B DO LBRACE E RBRACE .)
RBRACE reduce using rule 10 (E -> WHILE B DO LBRACE E RBRACE .)
state 59
(13) D -> ID LPAREN V RPAREN LBRACE E . RBRACE
(4) E -> E . AOP E
(8) E -> E . SEMICOLON E
RBRACE shift and go to state 60
AOP shift and go to state 8
SEMICOLON shift and go to state 9
state 60
(13) D -> ID LPAREN V RPAREN LBRACE E RBRACE .
IN reduce using rule 13 (D -> ID LPAREN V RPAREN LBRACE E RBRACE .)
ID reduce using rule 13 (D -> ID LPAREN V RPAREN LBRACE E RBRACE .)
WARNING:
WARNING: Conflicts:
WARNING:
WARNING: shift/reduce conflict for AOP in state 22 resolved as shift
WARNING: shift/reduce conflict for SEMICOLON in state 22 resolved as shift
WARNING: shift/reduce conflict for ID in state 23 resolved as shift
WARNING: shift/reduce conflict for AOP in state 28 resolved as shift
WARNING: shift/reduce conflict for SEMICOLON in state 28 resolved as shift
WARNING: shift/reduce conflict for AOP in state 38 resolved as shift
WARNING: shift/reduce conflict for SEMICOLON in state 38 resolved as shift
WARNING: shift/reduce conflict for EQOP in state 45 resolved as shift
WARNING: shift/reduce conflict for LOP in state 45 resolved as shift
WARNING: shift/reduce conflict for AOP in state 57 resolved as shift
WARNING: shift/reduce conflict for SEMICOLON in state 57 resolved as shift