Advertisement
Guest User

Untitled

a guest
Nov 15th, 2011
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.71 KB | None | 0 0
  1. expr = orExpr
  2. primaryExpr = choice [qid, literal, between lparen rparen expr]
  3. multExpr = primaryExpr `chainl` (choice [times, divide, modulo])
  4. addExpr = multExpr `chainl` (choice [plus, minus])
  5. relExpr = addExpr `chainl` (choice [less, greater, lessThan, greaterThan])
  6. eqExpr = relExpr `chainl` (choice [eq, neq])
  7. andExpr = eqExpr `chainl` logicAnd
  8. orExpr = andExpr `chainl` logicOr
  9.  
  10. becomes
  11.  
  12. primaryExpr = literal | identifier | '(' expression ')';
  13. multExpr = *(primaryExpr ('*' | '/' | '%' )) primaryExpr;
  14. addExpr = *(multExpr ('+' | '-')) multExpr;
  15. relExpr = *(add ('>' | '>=' | '<' | '<=')) addExpr;
  16. eqExpr = *(relExpr ('==' | '!=')) relExpr;
  17. andExpr = *(eqExpr '&&') eqExpr;
  18. orExpr = *(andExpr '||') andExpr;
  19.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement