diff options
author | Mark Lister <toomuchspam@nowhere> | 2014-09-24 15:03:12 +0200 |
---|---|---|
committer | Mark Lister <toomuchspam@nowhere> | 2014-09-24 15:03:12 +0200 |
commit | c7f3c38a327928d24838088b2bd7630f2208e595 (patch) | |
tree | e012b8c09e9d4f6ef1d51736857d439fdb87f97c /src/main/scala | |
parent | 6f6e12bad651da9d659611f01f0fb2d5add91f41 (diff) | |
download | sbt-boilerplate-c7f3c38a327928d24838088b2bd7630f2208e595.tar.gz sbt-boilerplate-c7f3c38a327928d24838088b2bd7630f2208e595.tar.bz2 sbt-boilerplate-c7f3c38a327928d24838088b2bd7630f2208e595.zip |
Fix for issue #12 escape sharp
Diffstat (limited to 'src/main/scala')
-rw-r--r-- | src/main/scala/spray/boilerplate/TemplateParser.scala | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/main/scala/spray/boilerplate/TemplateParser.scala b/src/main/scala/spray/boilerplate/TemplateParser.scala index 857b1cb..9972be2 100644 --- a/src/main/scala/spray/boilerplate/TemplateParser.scala +++ b/src/main/scala/spray/boilerplate/TemplateParser.scala @@ -42,12 +42,13 @@ object TemplateParser extends RegexParsers { lazy val element: Parser[TemplateElement] = offset | literalString | expand lazy val offset: Parser[Offset] = offsetChars ^^ (s ⇒ Offset(s.toInt)) - lazy val literalString: Parser[LiteralString] = rep1(escapedLiteralNumber | literalChar) ^^ (chs ⇒ LiteralString(chs.mkString)) + lazy val literalString: Parser[LiteralString] = rep1(escapedSharp | escapedLiteralNumber | literalChar) ^^ (chs ⇒ LiteralString(chs.mkString)) lazy val literalChar: Parser[Char] = not(expandStart | """#[^\]]*\]""".r | offsetChars) ~> elem("Any character", _ != EOI) lazy val offsetChars = "[012]".r + 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)) |