Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- expr = orExpr
- primaryExpr = choice [qid, literal, between lparen rparen expr]
- multExpr = primaryExpr `chainl` (choice [times, divide, modulo])
- addExpr = multExpr `chainl` (choice [plus, minus])
- relExpr = addExpr `chainl` (choice [less, greater, lessThan, greaterThan])
- eqExpr = relExpr `chainl` (choice [eq, neq])
- andExpr = eqExpr `chainl` logicAnd
- orExpr = andExpr `chainl` logicOr
- becomes
- primaryExpr = literal | identifier | '(' expression ')';
- multExpr = *(primaryExpr ('*' | '/' | '%' )) primaryExpr;
- addExpr = *(multExpr ('+' | '-')) multExpr;
- relExpr = *(add ('>' | '>=' | '<' | '<=')) addExpr;
- eqExpr = *(relExpr ('==' | '!=')) relExpr;
- andExpr = *(eqExpr '&&') eqExpr;
- orExpr = *(andExpr '||') andExpr;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement