summaryrefslogtreecommitdiff
path: root/scalatexApi/src/main/scala/scalatex/stages/Parser.scala
diff options
context:
space:
mode:
authorLi Haoyi <haoyi@dropbox.com>2014-11-05 22:35:29 -0800
committerLi Haoyi <haoyi@dropbox.com>2014-11-05 22:35:29 -0800
commitc6af197340ac1045afc1506a69a0bdf6f00fd595 (patch)
tree25dfe8402ea31d653b29bf2df84e80f673a044b4 /scalatexApi/src/main/scala/scalatex/stages/Parser.scala
parent784f3da4192a0e30ddd94cfb10f91d0bc8dc4f7f (diff)
downloadhands-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.scala12
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 {