aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/scala/spray/boilerplate/TemplateParser.scala3
-rw-r--r--src/test/scala/spray/boilerplate/GeneratorSpecs.scala2
2 files changed, 3 insertions, 2 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))
diff --git a/src/test/scala/spray/boilerplate/GeneratorSpecs.scala b/src/test/scala/spray/boilerplate/GeneratorSpecs.scala
index d1f6af8..09dfe53 100644
--- a/src/test/scala/spray/boilerplate/GeneratorSpecs.scala
+++ b/src/test/scala/spray/boilerplate/GeneratorSpecs.scala
@@ -17,7 +17,7 @@ class GeneratorSpecs extends Specification {
gen4("[#a2#]") === "a2, a3, a4, a5"
}
"encode sharp" in {
- gen4("[#a#1#]") === "a#1, a#2, a#3, a#4" pendingUntilFixed
+ gen4("[#a\\#1#]") === "a#1, a#2, a#3, a#4"
}
"don't inflate when quoted in expansion" in {
gen4("[#a1 ##1#]") === "a1 1, a2 1, a3 1, a4 1"