rustlr 0.2.1

LR(1)/LALR(1) parser generator for rust
Documentation
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