rustlr 0.3.7

LR parser generator that can automatically create ASTs
Documentation
# ambiguous grammar for online calculator, enum Expr defined in exprtrees.rs

!use crate::exprtrees::*;
!use crate::exprtrees::Expr::*;
!use rustlr::{LBox};

absyntype Expr
nonterminal E
nonterminal ES
terminal + - * ( ) ;
terminal int
topsym ES

left * 500
left + 400
left - 400

E --> int:n { n }
E --> E:e1 + E:e2 { Plus(parser.lb(e1),parser.lb(e2)) }
E --> E:e1 - E:e2 { Minus(parser.lb(e1),parser.lb(e2)) }
E ==> E:e1 * E:e2
      { Times(parser.lb(e1),parser.lb(e2)) }
  <==
E --> - E:e { Negative(parser.lb(e)) }
E --> ( E:e )  { e }
ES --> E:n ; { Seq(vec![parser.lb(n)]) }
ES ==> ES:'Seq(mut v)'  E:e ; {
   v.push(parser.lb(e)); return Seq(v);
   } <==
EOF