diff options
author | Li Haoyi <haoyi@dropbox.com> | 2014-11-05 22:35:29 -0800 |
---|---|---|
committer | Li Haoyi <haoyi@dropbox.com> | 2014-11-05 22:35:29 -0800 |
commit | c6af197340ac1045afc1506a69a0bdf6f00fd595 (patch) | |
tree | 25dfe8402ea31d653b29bf2df84e80f673a044b4 /scalatexApi/src/main/scala/scalatex/stages/Parser.scala | |
parent | 784f3da4192a0e30ddd94cfb10f91d0bc8dc4f7f (diff) | |
download | hands-on-scala-js-c6af197340ac1045afc1506a69a0bdf6f00fd595.tar.gz hands-on-scala-js-c6af197340ac1045afc1506a69a0bdf6f00fd595.tar.bz2 hands-on-scala-js-c6af197340ac1045afc1506a69a0bdf6f00fd595.zip |
if-else error positions now work
Diffstat (limited to 'scalatexApi/src/main/scala/scalatex/stages/Parser.scala')
-rw-r--r-- | scalatexApi/src/main/scala/scalatex/stages/Parser.scala | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/scalatexApi/src/main/scala/scalatex/stages/Parser.scala b/scalatexApi/src/main/scala/scalatex/stages/Parser.scala index 4d35fd1..06659d0 100644 --- a/scalatexApi/src/main/scala/scalatex/stages/Parser.scala +++ b/scalatexApi/src/main/scala/scalatex/stages/Parser.scala @@ -68,27 +68,27 @@ class Parser(input: ParserInput, indent: Int = 0, offset: Int = 0) extends Scala } def IfHead = rule{ "@" ~ capture("if" ~ "(" ~ Expr ~ ")") } def IfElse1 = rule{ - IfHead ~ BraceBlock ~ optional("else" ~ (BraceBlock | IndentBlock)) + push(offsetCursor) ~ IfHead ~ BraceBlock ~ optional("else" ~ (BraceBlock | IndentBlock)) } def IfElse2 = rule{ - Indent ~ IfHead ~ IndentBlock ~ optional(Indent ~ "@else" ~ (BraceBlock | IndentBlock)) + Indent ~ push(offsetCursor) ~ IfHead ~ IndentBlock ~ optional(Indent ~ "@else" ~ (BraceBlock | IndentBlock)) } def IfElse = rule{ - (IfElse1 | IfElse2) ~> (Ast.Block.IfElse(_, _, _)) + (IfElse1 | IfElse2) ~> ((a, b, c, d) => Ast.Block.IfElse(b, c, d, a)) } def ForHead = rule{ - "@" ~ capture("for" ~ '(' ~ Enumerators ~ ')') + push(offsetCursor) ~ "@" ~ capture("for" ~ '(' ~ Enumerators ~ ')') } def ForLoop = rule{ ForHead ~ - BraceBlock ~> (Ast.Block.For(_, _)) + BraceBlock ~> ((a, b, c) => Ast.Block.For(b, c, a)) } def LoneForLoop = rule{ (push(offsetCursor) ~ capture(Indent) ~> ((i, t) => Ast.Block.Text(t, i))) ~ ForHead ~ IndentBlock ~> - (Ast.Block.For(_, _)) + ((a, b, c) => Ast.Block.For(b, c, a)) } def ScalaChain = rule { |