trace-level set to 2
parsing grammar from ../class-resources/cplusminus/cpm.grammar
Generating LALR state machine for grammar cpm...
state 0:
(1) STATLIST --> .STATLIST STAT , cout
(3) STAT --> .cout << EXPRLIST ; , EOF
(1) STATLIST --> .STATLIST STAT , cin
(10) STAT --> .ERROR ; , ERROR
(0) STATLIST --> .STAT , EOF
(2) STAT --> .cin >> EXPR ; , cout
(13) START --> .STATLIST , EOF
(1) STATLIST --> .STATLIST STAT , ERROR
(3) STAT --> .cout << EXPRLIST ; , ERROR
(2) STAT --> .cin >> EXPR ; , cin
(10) STAT --> .ERROR ; , cin
(10) STAT --> .ERROR ; , cout
(2) STAT --> .cin >> EXPR ; , ERROR
(0) STATLIST --> .STAT , ERROR
(10) STAT --> .ERROR ; , EOF
(2) STAT --> .cin >> EXPR ; , EOF
(0) STATLIST --> .STAT , cout
(0) STATLIST --> .STAT , cin
(3) STAT --> .cout << EXPRLIST ; , cout
(3) STAT --> .cout << EXPRLIST ; , cin
(1) STATLIST --> .STATLIST STAT , EOF
state 1:
(3) STAT --> .cout << EXPRLIST ; , cin
(1) STATLIST --> STATLIST .STAT , cin
(2) STAT --> .cin >> EXPR ; , cin
(1) STATLIST --> STATLIST .STAT , EOF
(10) STAT --> .ERROR ; , cout
(10) STAT --> .ERROR ; , ERROR
(2) STAT --> .cin >> EXPR ; , EOF
(3) STAT --> .cout << EXPRLIST ; , cout
(1) STATLIST --> STATLIST .STAT , cout
(3) STAT --> .cout << EXPRLIST ; , ERROR
(3) STAT --> .cout << EXPRLIST ; , EOF
(1) STATLIST --> STATLIST .STAT , ERROR
(13) START --> STATLIST . , EOF
(2) STAT --> .cin >> EXPR ; , ERROR
(2) STAT --> .cin >> EXPR ; , cout
(10) STAT --> .ERROR ; , EOF
(10) STAT --> .ERROR ; , cin
state 2:
(3) STAT --> cout .<< EXPRLIST ; , cout
(3) STAT --> cout .<< EXPRLIST ; , cin
(3) STAT --> cout .<< EXPRLIST ; , EOF
(3) STAT --> cout .<< EXPRLIST ; , ERROR
state 3:
(10) STAT --> ERROR .; , cin
(10) STAT --> ERROR .; , EOF
(10) STAT --> ERROR .; , cout
(10) STAT --> ERROR .; , ERROR
state 4:
(0) STATLIST --> STAT . , EOF
(0) STATLIST --> STAT . , cout
(0) STATLIST --> STAT . , cin
(0) STATLIST --> STAT . , ERROR
state 5:
(2) STAT --> cin .>> EXPR ; , ERROR
(2) STAT --> cin .>> EXPR ; , cin
(2) STAT --> cin .>> EXPR ; , EOF
(2) STAT --> cin .>> EXPR ; , cout
state 6:
(1) STATLIST --> STATLIST STAT . , cin
(1) STATLIST --> STATLIST STAT . , ERROR
(1) STATLIST --> STATLIST STAT . , cout
(1) STATLIST --> STATLIST STAT . , EOF
state 7:
(3) STAT --> cout << .EXPRLIST ; , cin
(6) EXPR --> .z , ERROR
(4) EXPR --> .x , ;
(5) EXPR --> .y , ;
(5) EXPR --> .y , <<
(5) EXPR --> .y , ERROR
(7) EXPR --> .( EXPR ) , ;
(3) STAT --> cout << .EXPRLIST ; , EOF
(12) EXPR --> .EXPR ERROR ) , <<
(11) EXPR --> .( EXPR ERROR , ;
(9) EXPRLIST --> .EXPRLIST << EXPR , ;
(8) EXPRLIST --> .EXPR , ;
(4) EXPR --> .x , ERROR
(7) EXPR --> .( EXPR ) , <<
(4) EXPR --> .x , <<
(6) EXPR --> .z , ;
(3) STAT --> cout << .EXPRLIST ; , cout
(11) EXPR --> .( EXPR ERROR , ERROR
(7) EXPR --> .( EXPR ) , ERROR
(3) STAT --> cout << .EXPRLIST ; , ERROR
(8) EXPRLIST --> .EXPR , <<
(12) EXPR --> .EXPR ERROR ) , ERROR
(12) EXPR --> .EXPR ERROR ) , ;
(9) EXPRLIST --> .EXPRLIST << EXPR , <<
(6) EXPR --> .z , <<
(11) EXPR --> .( EXPR ERROR , <<
state 8:
(10) STAT --> ERROR ; . , cout
(10) STAT --> ERROR ; . , ERROR
(10) STAT --> ERROR ; . , EOF
(10) STAT --> ERROR ; . , cin
state 9:
(4) EXPR --> .x , ERROR
(7) EXPR --> .( EXPR ) , ;
(2) STAT --> cin >> .EXPR ; , EOF
(2) STAT --> cin >> .EXPR ; , cout
(4) EXPR --> .x , ;
(2) STAT --> cin >> .EXPR ; , ERROR
(6) EXPR --> .z , ;
(2) STAT --> cin >> .EXPR ; , cin
(12) EXPR --> .EXPR ERROR ) , ERROR
(11) EXPR --> .( EXPR ERROR , ERROR
(5) EXPR --> .y , ;
(11) EXPR --> .( EXPR ERROR , ;
(12) EXPR --> .EXPR ERROR ) , ;
(5) EXPR --> .y , ERROR
(7) EXPR --> .( EXPR ) , ERROR
(6) EXPR --> .z , ERROR
state 10:
(3) STAT --> cout << EXPRLIST .; , ERROR
(9) EXPRLIST --> EXPRLIST .<< EXPR , ;
(3) STAT --> cout << EXPRLIST .; , cin
(9) EXPRLIST --> EXPRLIST .<< EXPR , <<
(3) STAT --> cout << EXPRLIST .; , cout
(3) STAT --> cout << EXPRLIST .; , EOF
state 11:
(6) EXPR --> z . , ERROR
(6) EXPR --> z . , <<
(6) EXPR --> z . , ;
(6) EXPR --> z . , )
state 12:
(4) EXPR --> x . , ;
(4) EXPR --> x . , ERROR
(4) EXPR --> x . , )
(4) EXPR --> x . , <<
state 13:
(5) EXPR --> y . , ERROR
(5) EXPR --> y . , ;
(5) EXPR --> y . , )
(5) EXPR --> y . , <<
state 14:
(7) EXPR --> ( .EXPR ) , <<
(7) EXPR --> ( .EXPR ) , ERROR
(6) EXPR --> .z , )
(5) EXPR --> .y , ERROR
(7) EXPR --> ( .EXPR ) , )
(7) EXPR --> .( EXPR ) , ERROR
(4) EXPR --> .x , )
(11) EXPR --> ( .EXPR ERROR , ;
(11) EXPR --> ( .EXPR ERROR , )
(11) EXPR --> ( .EXPR ERROR , ERROR
(11) EXPR --> .( EXPR ERROR , ERROR
(4) EXPR --> .x , ERROR
(7) EXPR --> .( EXPR ) , )
(7) EXPR --> ( .EXPR ) , ;
(6) EXPR --> .z , ERROR
(12) EXPR --> .EXPR ERROR ) , )
(12) EXPR --> .EXPR ERROR ) , ERROR
(5) EXPR --> .y , )
(11) EXPR --> ( .EXPR ERROR , <<
(11) EXPR --> .( EXPR ERROR , )
state 15:
(12) EXPR --> EXPR .ERROR ) , ERROR
(8) EXPRLIST --> EXPR . , ;
(12) EXPR --> EXPR .ERROR ) , <<
(8) EXPRLIST --> EXPR . , <<
(12) EXPR --> EXPR .ERROR ) , ;
state 16:
(2) STAT --> cin >> EXPR .; , cout
(2) STAT --> cin >> EXPR .; , ERROR
(2) STAT --> cin >> EXPR .; , EOF
(12) EXPR --> EXPR .ERROR ) , ERROR
(12) EXPR --> EXPR .ERROR ) , ;
(2) STAT --> cin >> EXPR .; , cin
state 17:
(3) STAT --> cout << EXPRLIST ; . , ERROR
(3) STAT --> cout << EXPRLIST ; . , EOF
(3) STAT --> cout << EXPRLIST ; . , cin
(3) STAT --> cout << EXPRLIST ; . , cout
state 18:
(4) EXPR --> .x , ERROR
(5) EXPR --> .y , ;
(6) EXPR --> .z , ;
(6) EXPR --> .z , ERROR
(6) EXPR --> .z , <<
(11) EXPR --> .( EXPR ERROR , ;
(12) EXPR --> .EXPR ERROR ) , ;
(11) EXPR --> .( EXPR ERROR , <<
(4) EXPR --> .x , ;
(7) EXPR --> .( EXPR ) , ERROR
(9) EXPRLIST --> EXPRLIST << .EXPR , <<
(11) EXPR --> .( EXPR ERROR , ERROR
(4) EXPR --> .x , <<
(7) EXPR --> .( EXPR ) , <<
(9) EXPRLIST --> EXPRLIST << .EXPR , ;
(7) EXPR --> .( EXPR ) , ;
(12) EXPR --> .EXPR ERROR ) , <<
(5) EXPR --> .y , ERROR
(5) EXPR --> .y , <<
(12) EXPR --> .EXPR ERROR ) , ERROR
state 19:
(7) EXPR --> ( EXPR .) , <<
(7) EXPR --> ( EXPR .) , ERROR
(11) EXPR --> ( EXPR .ERROR , ERROR
(11) EXPR --> ( EXPR .ERROR , )
(12) EXPR --> EXPR .ERROR ) , )
(11) EXPR --> ( EXPR .ERROR , ;
(12) EXPR --> EXPR .ERROR ) , ERROR
(11) EXPR --> ( EXPR .ERROR , <<
(7) EXPR --> ( EXPR .) , )
(7) EXPR --> ( EXPR .) , ;
state 20:
(12) EXPR --> EXPR ERROR .) , <<
(12) EXPR --> EXPR ERROR .) , ;
(12) EXPR --> EXPR ERROR .) , ERROR
state 21:
(2) STAT --> cin >> EXPR ; . , cin
(2) STAT --> cin >> EXPR ; . , ERROR
(2) STAT --> cin >> EXPR ; . , EOF
(2) STAT --> cin >> EXPR ; . , cout
state 22:
(12) EXPR --> EXPR .ERROR ) , <<
(9) EXPRLIST --> EXPRLIST << EXPR . , <<
(9) EXPRLIST --> EXPRLIST << EXPR . , ;
(12) EXPR --> EXPR .ERROR ) , ERROR
(12) EXPR --> EXPR .ERROR ) , ;
state 23:
(7) EXPR --> ( EXPR ) . , )
(7) EXPR --> ( EXPR ) . , ERROR
(7) EXPR --> ( EXPR ) . , ;
(7) EXPR --> ( EXPR ) . , <<
state 24:
(11) EXPR --> ( EXPR ERROR . , ;
(12) EXPR --> EXPR ERROR .) , )
(11) EXPR --> ( EXPR ERROR . , <<
(12) EXPR --> EXPR ERROR .) , ERROR
(11) EXPR --> ( EXPR ERROR . , ERROR
(11) EXPR --> ( EXPR ERROR . , )
state 25:
(12) EXPR --> EXPR ERROR ) . , ;
(12) EXPR --> EXPR ERROR ) . , ERROR
(12) EXPR --> EXPR ERROR ) . , )
(12) EXPR --> EXPR ERROR ) . , <<
26 total states
written parser to cpmparser.rs