aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMark Lister <toomuchspam@nowhere>2014-09-24 15:03:12 +0200
committerMark Lister <toomuchspam@nowhere>2014-09-24 15:03:12 +0200
commitc7f3c38a327928d24838088b2bd7630f2208e595 (patch)
treee012b8c09e9d4f6ef1d51736857d439fdb87f97c /src
parent6f6e12bad651da9d659611f01f0fb2d5add91f41 (diff)
downloadsbt-boilerplate-c7f3c38a327928d24838088b2bd7630f2208e595.tar.gz
sbt-boilerplate-c7f3c38a327928d24838088b2bd7630f2208e595.tar.bz2
sbt-boilerplate-c7f3c38a327928d24838088b2bd7630f2208e595.zip
Fix for issue #12 escape sharp
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"