trace-level set to 3
parsing grammar from examples/calc4/calc4.grammar
12 rules in grammar
computing Nullable set
computing First sets
Generating LALR state machine for grammar calc4...
state 0:
  (10) ES --> .ES E ;  { var,int,EOF,let,(,-, }
  (7) E --> .- E  { /,-,*,;,+, }
  (3) E --> .E + E  { +,*,;,-,/, }
  (0) E --> .int  { ;,*,/,+,-, }
  (2) E --> .let E = E in E  { -,*,;,/,+, }
  (9) ES --> .E ;  { int,EOF,-,let,var,(, }
  (4) E --> .E - E  { -,*,/,;,+, }
  (6) E --> .E * E  { -,;,+,/,*, }
  (5) E --> .E / E  { ;,*,-,/,+, }
  (11) START --> .ES  { EOF, }
  (1) E --> .var  { ;,*,-,+,/, }
  (8) E --> .( E )  { -,*,;,+,/, }
state 1:
  (0) E --> int .  { ;,-,in,*,=,/,+,), }
state 2:
  (1) E --> .var  { ),*,-,+,/, }
  (7) E --> .- E  { ),/,*,-,+, }
  (8) E --> .( E )  { ),/,-,+,*, }
  (8) E --> ( .E )  { /,;,),-,in,=,*,+, }
  (3) E --> .E + E  { ),+,-,*,/, }
  (5) E --> .E / E  { /,*,+,-,), }
  (6) E --> .E * E  { *,/,),-,+, }
  (4) E --> .E - E  { *,-,),/,+, }
  (0) E --> .int  { /,*,+,),-, }
  (2) E --> .let E = E in E  { ),*,-,+,/, }
state 3:
  (3) E --> .E + E  { /,-,;,+,*, }
  (4) E --> .E - E  { *,/,-,+,;, }
  (6) E --> .E * E  { ;,/,*,+,-, }
  (0) E --> .int  { *,;,-,+,/, }
  (7) E --> .- E  { ;,/,-,*,+, }
  (10) ES --> ES .E ;  { let,EOF,-,int,var,(, }
  (1) E --> .var  { /,-,+,;,*, }
  (5) E --> .E / E  { /,-,*,+,;, }
  (11) START --> ES .  { EOF, }
  (8) E --> .( E )  { ;,/,*,+,-, }
  (2) E --> .let E = E in E  { -,/,+,;,*, }
state 4:
  (1) E --> var .  { =,+,in,-,;,/,*,), }
state 5:
  (3) E --> E .+ E  { -,+,/,*,;, }
  (6) E --> E .* E  { /,+,;,*,-, }
  (4) E --> E .- E  { *,-,+,;,/, }
  (5) E --> E ./ E  { ;,-,/,*,+, }
  (9) ES --> E .;  { let,-,var,EOF,(,int, }
state 6:
  (3) E --> .E + E  { =,),/,in,;,+,-,*, }
  (4) E --> .E - E  { /,-,in,=,),*,;,+, }
  (1) E --> .var  { -,+,;,in,*,),=,/, }
  (5) E --> .E / E  { -,),*,;,in,/,=,+, }
  (7) E --> .- E  { *,/,;,+,=,),-,in, }
  (8) E --> .( E )  { in,-,*,;,+,=,),/, }
  (2) E --> .let E = E in E  { *,+,=,in,-,;,),/, }
  (0) E --> .int  { -,/,),*,+,in,;,=, }
  (6) E --> .E * E  { ;,),=,in,-,*,+,/, }
  (7) E --> - .E  { =,-,*,in,),+,;,/, }
state 7:
  (1) E --> .var  { +,*,-,=,/, }
  (0) E --> .int  { -,*,/,+,=, }
  (4) E --> .E - E  { /,+,=,-,*, }
  (7) E --> .- E  { *,-,/,+,=, }
  (5) E --> .E / E  { =,+,-,*,/, }
  (2) E --> let .E = E in E  { ;,+,/,),=,-,in,*, }
  (2) E --> .let E = E in E  { /,*,=,-,+, }
  (6) E --> .E * E  { +,-,*,/,=, }
  (3) E --> .E + E  { +,/,=,-,*, }
  (8) E --> .( E )  { -,/,+,=,*, }
state 8:
  (3) E --> E .+ E  { /,),*,+,-, }
  (8) E --> ( E .)  { -,+,=,/,*,),in,;, }
  (5) E --> E ./ E  { +,),*,-,/, }
  (6) E --> E .* E  { +,-,),/,*, }
  (4) E --> E .- E  { *,+,-,/,), }
state 9:
  (4) E --> E .- E  { /,-,*,;,+, }
  (3) E --> E .+ E  { +,-,*,;,/, }
  (5) E --> E ./ E  { *,/,;,+,-, }
  (6) E --> E .* E  { ;,-,+,*,/, }
  (10) ES --> ES E .;  { EOF,(,let,int,-,var, }
state 10:
  (9) ES --> E ; .  { let,-,int,EOF,(,var, }
state 11:
  (5) E --> .E / E  { -,*,),+,=,in,/,;, }
  (0) E --> .int  { in,*,+,=,/,),-,;, }
  (6) E --> E * .E  { =,*,in,-,;,/,+,), }
  (8) E --> .( E )  { =,/,-,;,in,),+,*, }
  (1) E --> .var  { *,=,/,-,in,+,;,), }
  (3) E --> .E + E  { ),-,;,*,in,=,+,/, }
  (2) E --> .let E = E in E  { *,),;,+,/,-,=,in, }
  (7) E --> .- E  { *,),in,=,-,+,;,/, }
  (4) E --> .E - E  { =,+,in,-,),*,/,;, }
  (6) E --> .E * E  { ),/,-,*,in,=,;,+, }
state 12:
  (0) E --> .int  { ),;,/,-,+,=,in,*, }
  (1) E --> .var  { =,*,/,),+,-,;,in, }
  (7) E --> .- E  { +,;,=,),in,*,-,/, }
  (4) E --> E - .E  { in,;,),/,*,+,-,=, }
  (6) E --> .E * E  { =,;,*,in,),+,-,/, }
  (5) E --> .E / E  { -,in,=,/,*,+,;,), }
  (2) E --> .let E = E in E  { =,/,-,+,in,),*,;, }
  (8) E --> .( E )  { *,in,/,+,-,),=,;, }
  (4) E --> .E - E  { *,-,=,;,in,+,/,), }
  (3) E --> .E + E  { ),/,*,;,-,in,=,+, }
state 13:
  (3) E --> .E + E  { -,;,/,=,),*,+,in, }
  (6) E --> .E * E  { =,),;,*,in,+,-,/, }
  (7) E --> .- E  { +,=,*,;,in,),-,/, }
  (8) E --> .( E )  { =,-,;,in,+,),*,/, }
  (2) E --> .let E = E in E  { *,+,in,=,;,/,-,), }
  (1) E --> .var  { =,*,;,+,/,-,),in, }
  (4) E --> .E - E  { +,*,in,),;,-,=,/, }
  (3) E --> E + .E  { ),+,in,*,;,=,-,/, }
  (0) E --> .int  { -,*,/,in,),;,=,+, }
  (5) E --> .E / E  { =,*,),-,+,;,in,/, }
state 14:
  (1) E --> .var  { *,+,in,/,-,),=,;, }
  (5) E --> .E / E  { =,+,/,),in,-,;,*, }
  (8) E --> .( E )  { *,),;,-,/,in,+,=, }
  (0) E --> .int  { in,=,*,/,;,+,),-, }
  (4) E --> .E - E  { ;,=,in,*,+,),/,-, }
  (7) E --> .- E  { -,=,+,;,),in,/,*, }
  (3) E --> .E + E  { -,=,),;,*,in,+,/, }
  (6) E --> .E * E  { -,in,*,/,;,=,+,), }
  (5) E --> E / .E  { *,-,),in,/,;,+,=, }
  (2) E --> .let E = E in E  { in,-,),*,=,;,+,/, }
state 15:
  (4) E --> E .- E  { =,*,-,+,;,),in,/, }
  (7) E --> - E .  { in,-,+,;,=,),/,*, }
  (3) E --> E .+ E  { /,=,-,),*,+,in,;, }
  (5) E --> E ./ E  { =,-,+,/,),*,;,in, }
  (6) E --> E .* E  { /,-,=,),;,+,in,*, }
state 16:
  (4) E --> E .- E  { /,*,-,+,=, }
  (6) E --> E .* E  { -,/,+,=,*, }
  (5) E --> E ./ E  { +,=,*,-,/, }
  (2) E --> let E .= E in E  { -,;,+,in,/,),=,*, }
  (3) E --> E .+ E  { /,-,=,+,*, }
state 17:
  (8) E --> ( E ) .  { ),in,*,=,-,+,/,;, }
state 18:
  (10) ES --> ES E ; .  { let,EOF,int,var,(,-, }
state 19:
  (5) E --> E ./ E  { *,),=,in,;,-,/,+, }
  (6) E --> E * E .  { -,),in,;,+,*,=,/, }
  (3) E --> E .+ E  { *,/,in,=,+,),-,;, }
  (4) E --> E .- E  { ;,),/,=,*,-,+,in, }
  (6) E --> E .* E  { ;,*,in,+,=,/,),-, }
state 20:
  (3) E --> E .+ E  { ),-,=,+,in,*,;,/, }
  (4) E --> E - E .  { ),;,in,*,-,=,+,/, }
  (6) E --> E .* E  { *,/,;,+,),in,-,=, }
  (5) E --> E ./ E  { +,=,;,/,),in,*,-, }
  (4) E --> E .- E  { =,-,*,in,+,/,),;, }
state 21:
  (6) E --> E .* E  { /,),=,*,-,;,in,+, }
  (4) E --> E .- E  { -,in,),=,*,+,/,;, }
  (3) E --> E .+ E  { +,/,-,*,;,),=,in, }
  (5) E --> E ./ E  { *,-,/,),+,;,in,=, }
  (3) E --> E + E .  { *,in,+,;,),=,-,/, }
state 22:
  (5) E --> E / E .  { ),in,+,/,*,-,=,;, }
  (3) E --> E .+ E  { /,=,*,-,+,;,in,), }
  (5) E --> E ./ E  { ;,),=,+,-,in,/,*, }
  (4) E --> E .- E  { /,in,*,),;,+,-,=, }
  (6) E --> E .* E  { in,*,;,),-,=,/,+, }
state 23:
  (3) E --> .E + E  { -,+,/,*,in, }
  (2) E --> let E = .E in E  { -,+,*,),/,in,;,=, }
  (6) E --> .E * E  { in,+,*,-,/, }
  (2) E --> .let E = E in E  { /,*,-,in,+, }
  (7) E --> .- E  { +,-,/,in,*, }
  (5) E --> .E / E  { /,-,*,in,+, }
  (0) E --> .int  { -,in,+,/,*, }
  (4) E --> .E - E  { -,/,*,+,in, }
  (8) E --> .( E )  { +,in,-,*,/, }
  (1) E --> .var  { /,+,in,-,*, }
state 24:
  (4) E --> E .- E  { /,+,-,*,in, }
  (3) E --> E .+ E  { +,/,in,-,*, }
  (6) E --> E .* E  { in,-,*,+,/, }
  (2) E --> let E = E .in E  { /,+,),=,in,;,-,*, }
  (5) E --> E ./ E  { in,+,-,/,*, }
state 25:
  (0) E --> .int  { ),/,=,in,*,+,-,;, }
  (4) E --> .E - E  { +,in,;,=,),-,*,/, }
  (1) E --> .var  { =,+,-,),;,in,*,/, }
  (2) E --> .let E = E in E  { /,*,;,=,+,),in,-, }
  (2) E --> let E = E in .E  { +,*,;,=,),-,in,/, }
  (7) E --> .- E  { in,-,),*,+,=,/,;, }
  (5) E --> .E / E  { +,-,in,),;,/,*,=, }
  (8) E --> .( E )  { /,in,-,*,=,+,),;, }
  (3) E --> .E + E  { -,;,/,*,),+,=,in, }
  (6) E --> .E * E  { in,*,/,=,;,-,),+, }
state 26:
  (2) E --> let E = E in E .  { ;,+,),*,-,/,=,in, }
  (4) E --> E .- E  { ;,),in,/,+,*,-,=, }
  (6) E --> E .* E  { -,*,=,;,/,in,+,), }
  (3) E --> E .+ E  { *,-,/,;,),=,in,+, }
  (5) E --> E ./ E  { =,/,),*,in,+,-,;, }
written parser to calc4parser.rs
