From d90a154bdaeb14a6c85f1abb0ea1c5fbe8267db1 Mon Sep 17 00:00:00 2001 From: Johannes Rudolph Date: Wed, 24 Feb 2016 16:06:43 +0100 Subject: fix parsing of '#' outside of range (as testified by last commit) - parse '#' as literal character - allow backquoted form "\#" as well --- src/main/scala/spray/boilerplate/TemplateParser.scala | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/scala/spray/boilerplate/TemplateParser.scala b/src/main/scala/spray/boilerplate/TemplateParser.scala index 9972be2..e70b156 100644 --- a/src/main/scala/spray/boilerplate/TemplateParser.scala +++ b/src/main/scala/spray/boilerplate/TemplateParser.scala @@ -51,8 +51,8 @@ object TemplateParser extends RegexParsers { lazy val escapedSharp: Parser[Char] = "\\#" ^^ (_.drop(1).head) lazy val escapedLiteralNumber: Parser[Char] = "##" ~> offsetChars ^^ (_.head) - lazy val outsideLiteralString: Parser[LiteralString] = rep1(outsideLiteralChar) ^^ (chs ⇒ LiteralString(chs.mkString)) - lazy val outsideLiteralChar: Parser[Char] = not(expandStart | """#[^\]]*\]""".r) ~> elem("Any character", _ != EOI) + lazy val outsideLiteralString: Parser[LiteralString] = rep1(escapedSharp | outsideLiteralChar) ^^ (chs ⇒ LiteralString(chs.mkString)) + lazy val outsideLiteralChar: Parser[Char] = not(expandStart) ~> elem("Any character", _ != EOI) lazy val expand: Parser[Expand] = expandStart ~ elements ~ "#" ~ separatorChars <~ "]" ^^ { case range ~ els ~ x ~ sep ⇒ Expand(els, sep.getOrElse(Expand.defaultSeparator), range) -- cgit v1.2.3