Advertisement
tudzic

exp

Oct 11th, 2014
220
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.72 KB | None | 0 0
  1. def exp : Parser[Any] = term ~ opt("<"|">"|"<="|">=" ~ term)
  2. def term : Parser[Any] = term1 ~ opt("=="|"<>" ~ term1)
  3. def term1: Parser[Any] = term2 ~ rep("&&"|"||" ~ term2)
  4. def term2: Parser[Any] = term3 ~ rep("+"|"-" ~ term3)
  5. def term3: Parser[Any] = term4 ~ rep(("*"|"/"|"\\"|"%") ~ term4)
  6. def term4: Parser[Any] = term5 ~ rep("^" ~ term5)
  7. def term5: Parser[Any] = opt("!") ~ term6
  8. def term6: Parser[Any] = opt("-"|"+") ~ term7
  9. def term7: Parser[Any] = term8 ~ opt("[" ~ exp ~ "]")
  10. def term8: Parser[Any] = term9 ~ rep("." ~ ident ~ opt("(" ~ explist ~ ")"))
  11. def term9: Parser[Any] = ("new" ~ ident ~ "(" ~ explist ~ ")")|term10
  12. def term10: Parser[Any] = ident| lit| "(" ~ exp ~ ")"| "self"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement