X-Git-Url: https://git.madduck.net/etc/vim.git/blobdiff_plain/6aef6c9d458e8df88f510e94c18f216232b6a786..e027fc9e75daadd7e22f12e6e1e374bcca998087:/blib2to3/pgen2/literals.py diff --git a/blib2to3/pgen2/literals.py b/blib2to3/pgen2/literals.py index baa17e1..93bee52 100644 --- a/blib2to3/pgen2/literals.py +++ b/blib2to3/pgen2/literals.py @@ -5,16 +5,19 @@ import regex as re -simple_escapes = {"a": "\a", - "b": "\b", - "f": "\f", - "n": "\n", - "r": "\r", - "t": "\t", - "v": "\v", - "'": "'", - '"': '"', - "\\": "\\"} +simple_escapes = { + "a": "\a", + "b": "\b", + "f": "\f", + "n": "\n", + "r": "\r", + "t": "\t", + "v": "\v", + "'": "'", + '"': '"', + "\\": "\\", +} + def escape(m): all, tail = m.group(0, 1) @@ -37,16 +40,18 @@ def escape(m): raise ValueError("invalid octal string escape ('\\%s')" % tail) from None return chr(i) + def evalString(s): assert s.startswith("'") or s.startswith('"'), repr(s[:1]) q = s[0] - if s[:3] == q*3: - q = q*3 - assert s.endswith(q), repr(s[-len(q):]) - assert len(s) >= 2*len(q) - s = s[len(q):-len(q)] + if s[:3] == q * 3: + q = q * 3 + assert s.endswith(q), repr(s[-len(q) :]) + assert len(s) >= 2 * len(q) + s = s[len(q) : -len(q)] return re.sub(r"\\(\'|\"|\\|[abfnrtv]|x.{0,2}|[0-7]{1,3})", escape, s) + def test(): for i in range(256): c = chr(i)