summaryrefslogtreecommitdiff
path: root/django/utils/simplejson/scanner.py
diff options
context:
space:
mode:
authorMalcolm Tredinnick <malcolm.tredinnick@gmail.com>2008-07-27 23:38:28 +0000
committerMalcolm Tredinnick <malcolm.tredinnick@gmail.com>2008-07-27 23:38:28 +0000
commitd57ce3d6a9e4533e1814cbf39194e99b91b30f4e (patch)
treede0eb4bb8d53cabecbde40f3fffc2a7c528dc53d /django/utils/simplejson/scanner.py
parentde9e2ae5bb81a4c227e48bc0199fd3734ccba95c (diff)
Fixed #7131 -- Updated included simplejson code to match the simplejson-1.9.2
release. This should be fully backwards-compatible for people using the public interfaces. git-svn-id: http://code.djangoproject.com/svn/django/trunk@8124 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'django/utils/simplejson/scanner.py')
-rw-r--r--django/utils/simplejson/scanner.py18
1 files changed, 11 insertions, 7 deletions
diff --git a/django/utils/simplejson/scanner.py b/django/utils/simplejson/scanner.py
index 64f4999fb5..2a18390d0d 100644
--- a/django/utils/simplejson/scanner.py
+++ b/django/utils/simplejson/scanner.py
@@ -1,18 +1,21 @@
"""
Iterator based sre token scanner
"""
-import sre_parse, sre_compile, sre_constants
-from sre_constants import BRANCH, SUBPATTERN
-from re import VERBOSE, MULTILINE, DOTALL
import re
+from re import VERBOSE, MULTILINE, DOTALL
+import sre_parse
+import sre_compile
+import sre_constants
+from sre_constants import BRANCH, SUBPATTERN
__all__ = ['Scanner', 'pattern']
FLAGS = (VERBOSE | MULTILINE | DOTALL)
+
class Scanner(object):
def __init__(self, lexicon, flags=FLAGS):
self.actions = [None]
- # combine phrases into a compound pattern
+ # Combine phrases into a compound pattern
s = sre_parse.Pattern()
s.flags = flags
p = []
@@ -26,10 +29,10 @@ class Scanner(object):
p.append(subpattern)
self.actions.append(token)
+ s.groups = len(p) + 1 # NOTE(guido): Added to make SRE validation work
p = sre_parse.SubPattern(s, [(BRANCH, (None, p))])
self.scanner = sre_compile.compile(p)
-
def iterscan(self, string, idx=0, context=None):
"""
Yield match, end_idx for each match
@@ -54,10 +57,11 @@ class Scanner(object):
match = self.scanner.scanner(string, matchend).match
yield rval, matchend
lastend = matchend
-
+
+
def pattern(pattern, flags=FLAGS):
def decorator(fn):
fn.pattern = pattern
fn.regex = re.compile(pattern, flags)
return fn
- return decorator
+ return decorator \ No newline at end of file