.blank = [" \t\f\b\v\r\n"]
.number :: Int = ['0'..'9']+
expr :: Expr
= .. ::= term
| Add.. ::= expr '+' term
| Sub.. ::= expr '-' term ;
term
= .. ::= factor
| Mul.. ::= term '*' factor
| Div.. ::= term '/' factor ;
factor
= Number.. ::= number
| .. ::= '(' expr ')'