blob: 6f9c1e1824ba2e048abd880eff107f0fc888eddc [file] [log] [blame]
# Note: The Term and Factor rules are right recursive. They are actually
# supposed to be left recursive, but we don't support that yet.
Start : Expr !.;
Expr : Term;
Term : $Add(Factor PLUS Term)
| $Sub(Factor MINUS Term)
| Factor;
Factor : $Mul(Primary TIMES Factor)
| $Div(Primary SLASH Factor)
| Primary;
Primary : $Ident(ID)
| $Integer(INT)
| OPEN Expr CLOSE;
PLUS : "+" Spacing;
MINUS : "-" Spacing;
TIMES : "*" Spacing;
SLASH : "/" Spacing;
OPEN : "(" Spacing;
CLOSE : ")" Spacing;
ID : $([a-zA-Z_] [a-zA-Z_0-9]*) Spacing;
INT : $([1-9] [0-9]*) Spacing;
Spacing : $((" " | "\t" | "\r" | "\n")*);