aboutsummaryrefslogtreecommitdiffstats
path: root/libpathod/language/base.py
diff options
context:
space:
mode:
Diffstat (limited to 'libpathod/language/base.py')
-rw-r--r--libpathod/language/base.py12
1 files changed, 7 insertions, 5 deletions
diff --git a/libpathod/language/base.py b/libpathod/language/base.py
index e2cd9c9e..c473a6a8 100644
--- a/libpathod/language/base.py
+++ b/libpathod/language/base.py
@@ -1,7 +1,7 @@
import operator
import os
import abc
-import contrib.pyparsing as pp
+import pyparsing as pp
from .. import utils
from . import generators, exceptions
@@ -19,13 +19,11 @@ v_literal = pp.MatchFirst(
[
pp.QuotedString(
"\"",
- escChar="\\",
unquoteResults=True,
multiline=True
),
pp.QuotedString(
"'",
- escChar="\\",
unquoteResults=True,
multiline=True
),
@@ -86,6 +84,9 @@ class _ValueLiteral(Token):
class ValueLiteral(_ValueLiteral):
+ """
+ A literal with Python-style string escaping
+ """
@classmethod
def expr(klass):
e = v_literal.copy()
@@ -97,8 +98,9 @@ class ValueLiteral(_ValueLiteral):
return v
def spec(self):
- ret = "'%s'"%self.val.encode("string_escape")
- return ret
+ inner = self.val.encode("string_escape")
+ inner = inner.replace(r"\'", r"\x27")
+ return "'" + inner + "'"
class ValueNakedLiteral(_ValueLiteral):