summaryrefslogtreecommitdiff
path: root/scalatexApi/src/main/scala/scalaparser/ScalaSyntax.scala
diff options
context:
space:
mode:
Diffstat (limited to 'scalatexApi/src/main/scala/scalaparser/ScalaSyntax.scala')
-rw-r--r--scalatexApi/src/main/scala/scalaparser/ScalaSyntax.scala9
1 files changed, 6 insertions, 3 deletions
diff --git a/scalatexApi/src/main/scala/scalaparser/ScalaSyntax.scala b/scalatexApi/src/main/scala/scalaparser/ScalaSyntax.scala
index 989e6d9..264c79c 100644
--- a/scalatexApi/src/main/scala/scalaparser/ScalaSyntax.scala
+++ b/scalatexApi/src/main/scala/scalaparser/ScalaSyntax.scala
@@ -130,11 +130,14 @@ class ScalaSyntax(val input: ParserInput) extends Parser with Basic with Identif
ForCFlow(G) |
"throw" ~ Expr(G) |
"return" ~ optional(Expr(G)) |
- SimpleExpr() ~ ArgumentExprs() ~ '=' ~ Expr(G) |
- optional(SimpleExpr() ~ '.') ~ Id() ~ '=' ~ Expr(G) |
+ NaiveAssignment(G) |
+ SimpleExpr() ~ (
+ ArgumentExprs() ~ '=' ~ Expr(G) |
+ '.' ~ NaiveAssignment(G)
+ ) |
PostfixExpr(false) ~ optional("match" ~ '{' ~ CaseClauses ~ StrW("}", false) | Ascription(false)) ~ W(G)
}
-
+ def NaiveAssignment(G: B = t) = rule{ Id() ~ '=' ~ Expr(G) }
def IfCFlow(G: B = t) = rule { "if" ~ '(' ~ Expr() ~ ')' ~ zeroOrMore(Newline) ~ Expr(G) ~ optional(optional(Semi) ~ "else" ~ Expr(G)) }
def WhileCFlow(G: B = t) = rule { "while" ~ '(' ~ Expr() ~ ')' ~ zeroOrMore(Newline) ~ Expr(G) }
def TryCFlow(G: B = t) = rule { "try" ~ '{' ~ Block ~ StrW("}", G) ~ optional("catch" ~ '{' ~ CaseClauses ~ StrW("}", G)) ~ optional("finally" ~ Expr(G)) }