We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 37a50f1 commit 353585bCopy full SHA for 353585b
lib/rule_engine/parser/__init__.py
@@ -31,6 +31,7 @@
31
#
32
33
import ast as pyast
34
+import codecs
35
import collections
36
import types as pytypes
37
@@ -452,9 +453,12 @@ def p_expression_set(self, p):
452
453
454
def p_expression_string(self, p):
455
'object : STRING'
456
+ value = p[1][1:-1]
457
try:
- value = p[1][1:-1].encode().decode('unicode-escape')
- except Exception:
458
+ value = codecs.encode(value, 'unicode-escape').decode()
459
+ value = value.replace('\\\\', '\\')
460
+ value = codecs.decode(value, 'unicode-escape')
461
+ except UnicodeError:
462
raise errors.StringSyntaxError('invalid string literal', p[1][1:-1]) from None
463
p[0] = _DeferredAstNode(ast.StringExpression, args=(self.context, value))
464
0 commit comments