Commit 284cb07e authored by Fredrik Lundh's avatar Fredrik Lundh

- last patch broke parse_template; fixed by changing some

  tests in sre_patch back to previous version

- fixed return value from findall

- renamed a bunch of functions inside _sre (way too
  many leading underscores...)

</F>
parent 8304abef
...@@ -23,10 +23,10 @@ MAXREPEAT = 32767 ...@@ -23,10 +23,10 @@ MAXREPEAT = 32767
SPECIAL_CHARS = ".\\[{()*+?^$|" SPECIAL_CHARS = ".\\[{()*+?^$|"
REPEAT_CHARS = "*+?{" REPEAT_CHARS = "*+?{"
DIGITS = string.digits DIGITS = tuple(string.digits)
OCTDIGITS = "01234567" OCTDIGITS = tuple("01234567")
HEXDIGITS = "0123456789abcdefABCDEF" HEXDIGITS = tuple("0123456789abcdefABCDEF")
WHITESPACE = string.whitespace WHITESPACE = string.whitespace
...@@ -188,13 +188,13 @@ def _class_escape(source, escape): ...@@ -188,13 +188,13 @@ def _class_escape(source, escape):
return code return code
try: try:
if escape[1:2] == "x": if escape[1:2] == "x":
while source.next and source.next in HEXDIGITS: while source.next in HEXDIGITS:
escape = escape + source.get() escape = escape + source.get()
escape = escape[2:] escape = escape[2:]
# FIXME: support unicode characters! # FIXME: support unicode characters!
return LITERAL, chr(int(escape[-4:], 16) & 0xff) return LITERAL, chr(int(escape[-4:], 16) & 0xff)
elif str(escape[1:2]) in OCTDIGITS: elif str(escape[1:2]) in OCTDIGITS:
while source.next and source.next in OCTDIGITS: while source.next in OCTDIGITS:
escape = escape + source.get() escape = escape + source.get()
escape = escape[1:] escape = escape[1:]
# FIXME: support unicode characters! # FIXME: support unicode characters!
...@@ -215,12 +215,12 @@ def _escape(source, escape, state): ...@@ -215,12 +215,12 @@ def _escape(source, escape, state):
return code return code
try: try:
if escape[1:2] == "x": if escape[1:2] == "x":
while source.next and source.next in HEXDIGITS: while source.next in HEXDIGITS:
escape = escape + source.get() escape = escape + source.get()
escape = escape[2:] escape = escape[2:]
# FIXME: support unicode characters! # FIXME: support unicode characters!
return LITERAL, chr(int(escape[-4:], 16) & 0xff) return LITERAL, chr(int(escape[-4:], 16) & 0xff)
elif str(escape[1:2]) in DIGITS: elif escape[1:2] in DIGITS:
while 1: while 1:
group = _group(escape, state) group = _group(escape, state)
if group: if group:
...@@ -228,7 +228,7 @@ def _escape(source, escape, state): ...@@ -228,7 +228,7 @@ def _escape(source, escape, state):
not _group(escape + source.next, state)): not _group(escape + source.next, state)):
return GROUP, group return GROUP, group
escape = escape + source.get() escape = escape + source.get()
elif source.next and source.next in OCTDIGITS: elif source.next in OCTDIGITS:
escape = escape + source.get() escape = escape + source.get()
else: else:
break break
...@@ -372,10 +372,10 @@ def _parse(source, state, flags=0): ...@@ -372,10 +372,10 @@ def _parse(source, state, flags=0):
elif this == "{": elif this == "{":
min, max = 0, MAXREPEAT min, max = 0, MAXREPEAT
lo = hi = "" lo = hi = ""
while source.next and source.next in DIGITS: while source.next in DIGITS:
lo = lo + source.get() lo = lo + source.get()
if source.match(","): if source.match(","):
while source.next and source.next in DIGITS: while source.next in DIGITS:
hi = hi + source.get() hi = hi + source.get()
else: else:
hi = lo hi = lo
......
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment