diff options
author | Johannes Rudolph <johannes.rudolph@gmail.com> | 2016-02-24 16:06:43 +0100 |
---|---|---|
committer | Johannes Rudolph <johannes.rudolph@gmail.com> | 2016-02-24 16:25:51 +0100 |
commit | d90a154bdaeb14a6c85f1abb0ea1c5fbe8267db1 (patch) | |
tree | 667243441b56ab9bd0ff4dde157d87e93c79b339 /src/main | |
parent | 826be35627c3660a33df22203aca8734513ab02f (diff) | |
download | sbt-boilerplate-d90a154bdaeb14a6c85f1abb0ea1c5fbe8267db1.tar.gz sbt-boilerplate-d90a154bdaeb14a6c85f1abb0ea1c5fbe8267db1.tar.bz2 sbt-boilerplate-d90a154bdaeb14a6c85f1abb0ea1c5fbe8267db1.zip |
fix parsing of '#' outside of range (as testified by last commit)
- parse '#' as literal character
- allow backquoted form "\#" as well
Diffstat (limited to 'src/main')
-rw-r--r-- | src/main/scala/spray/boilerplate/TemplateParser.scala | 4 |
1 files 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) |