trace-level set to 4
parsing grammar from ../class-resources/brackets/brackets.grammar
computing Nullable set
computing First sets
Generating LALR state machine for grammar brackets...
state 0:
(5) WS --> . { Whitespace,(,[,LBRACE,EOF, }
(6) WS --> .WS Whitespace { (,Whitespace,EOF,LBRACE,[, }
(7) START --> .S { EOF, }
(3) S --> .WS { LBRACE,[,EOF,(, }
(4) S --> .S E { [,LBRACE,EOF,(, }
state 1:
(7) START --> S . { EOF, }
(1) E --> .[ S ] { EOF,LBRACE,(,[, }
(2) E --> .LBRACE S RBRACE { (,LBRACE,[,EOF, }
(0) E --> .( S ) { [,LBRACE,EOF,(, }
(4) S --> S .E { LBRACE,(,EOF,[, }
state 2:
(6) WS --> WS .Whitespace { EOF,],RBRACE,LBRACE,),Whitespace,[,(, }
(3) S --> WS . { ],LBRACE,RBRACE,),(,EOF,[, }
state 3:
(1) E --> [ .S ] { LBRACE,(,[,EOF,RBRACE,),], }
(4) S --> .S E { (,[,],LBRACE, }
(6) WS --> .WS Whitespace { [,(,],Whitespace,LBRACE, }
(3) S --> .WS { ],(,[,LBRACE, }
(5) WS --> . { ],Whitespace,LBRACE,[,(, }
state 4:
(2) E --> LBRACE .S RBRACE { ),LBRACE,(,[,RBRACE,],EOF, }
(3) S --> .WS { [,LBRACE,RBRACE,(, }
(4) S --> .S E { (,RBRACE,[,LBRACE, }
(6) WS --> .WS Whitespace { (,Whitespace,RBRACE,LBRACE,[, }
(5) WS --> . { Whitespace,(,[,LBRACE,RBRACE, }
state 5:
(4) S --> S E . { ],EOF,(,LBRACE,[,RBRACE,), }
state 6:
(6) WS --> .WS Whitespace { Whitespace,),[,LBRACE,(, }
(4) S --> .S E { LBRACE,[,),(, }
(5) WS --> . { Whitespace,LBRACE,(,),[, }
(0) E --> ( .S ) { RBRACE,],LBRACE,(,[,EOF,), }
(3) S --> .WS { [,),(,LBRACE, }
state 7:
(6) WS --> WS Whitespace . { Whitespace,EOF,LBRACE,[,],RBRACE,),(, }
state 8:
(4) S --> S .E { (,LBRACE,],[, }
(1) E --> [ S .] { (,RBRACE,EOF,],LBRACE,[,), }
(2) E --> .LBRACE S RBRACE { ],(,LBRACE,[, }
(0) E --> .( S ) { LBRACE,],(,[, }
(1) E --> .[ S ] { (,],LBRACE,[, }
state 9:
(2) E --> LBRACE S .RBRACE { RBRACE,EOF,(,],LBRACE,),[, }
(2) E --> .LBRACE S RBRACE { [,LBRACE,(,RBRACE, }
(0) E --> .( S ) { LBRACE,[,(,RBRACE, }
(4) S --> S .E { LBRACE,(,[,RBRACE, }
(1) E --> .[ S ] { [,(,LBRACE,RBRACE, }
state 10:
(0) E --> ( S .) { RBRACE,LBRACE,[,(,EOF,],), }
(4) S --> S .E { ),[,LBRACE,(, }
(2) E --> .LBRACE S RBRACE { LBRACE,(,[,), }
(0) E --> .( S ) { (,[,LBRACE,), }
(1) E --> .[ S ] { LBRACE,),(,[, }
state 11:
(1) E --> [ S ] . { ],(,EOF,),RBRACE,[,LBRACE, }
state 12:
(2) E --> LBRACE S RBRACE . { RBRACE,LBRACE,),],EOF,(,[, }
state 13:
(0) E --> ( S ) . { LBRACE,),EOF,[,(,RBRACE,], }
written parser to bracketsparser.rs