summaryrefslogtreecommitdiff
path: root/docs/examples/parsing/lambda/TestParser.scala
diff options
context:
space:
mode:
Diffstat (limited to 'docs/examples/parsing/lambda/TestParser.scala')
-rwxr-xr-xdocs/examples/parsing/lambda/TestParser.scala22
1 files changed, 11 insertions, 11 deletions
diff --git a/docs/examples/parsing/lambda/TestParser.scala b/docs/examples/parsing/lambda/TestParser.scala
index 92d370c29b..22257c1731 100755
--- a/docs/examples/parsing/lambda/TestParser.scala
+++ b/docs/examples/parsing/lambda/TestParser.scala
@@ -34,33 +34,33 @@ trait TestParser extends StdTokenParsers with ImplicitConversions with TestSynt
chainl1(expr4, expr3, op3 ^^ {o => (a: Term, b: Term) => App(App(o, a), b)})
def expr4 : Parser[Term] =
- ( "\\" ~ lambdas
- | "let" ~ name ~ "=" ~ expr1 ~ "in" ~ expr1 ^^ flatten3(Let)
- | "if" ~ expr1 ~ "then" ~ expr1 ~ "else" ~ expr1 ^^ flatten3(If)
+ ( "\\" ~> lambdas
+ | ("let" ~> name) ~ ("=" ~> expr1) ~ ("in" ~> expr1) ^^ flatten3(Let)
+ | ("if" ~> expr1) ~ ("then" ~> expr1) ~ ("else" ~> expr1) ^^ flatten3(If)
| chainl1(aexpr, success(App(_: Term, _: Term)))
)
def lambdas : Parser[Term] =
- name ~ ("->" ~ expr1 | lambdas) ^^ flatten2(Lam)
+ name ~ ("->" ~> expr1 | lambdas) ^^ flatten2(Lam)
def aexpr : Parser[Term] =
( numericLit ^^ (_.toInt) ^^ Lit
| name ^^ Ref
- | "unit" ^^ Unit
- | "(" ~ expr1 ~ ")"
+ | "unit" ^^^ Unit()
+ | "(" ~> expr1 <~ ")"
)
def op1 : Parser[Term] =
- "==" ^^ Ref(Name("=="))
+ "==" ^^^ Ref(Name("=="))
def op2 : Parser[Term] =
- ( "+" ^^ Ref(Name("+"))
- | "-" ^^ Ref(Name("-"))
+ ( "+" ^^^ Ref(Name("+"))
+ | "-" ^^^ Ref(Name("-"))
)
def op3 : Parser[Term] =
- ( "*" ^^ Ref(Name("*"))
- | "/" ^^ Ref(Name("/"))
+ ( "*" ^^^ Ref(Name("*"))
+ | "/" ^^^ Ref(Name("/"))
)
def parse(r: Reader[char]) : ParseResult[Term] =