diff options
author | Fredrik Lundh <fredrik@pythonware.com> | 2000-07-02 17:33:27 (GMT) |
---|---|---|
committer | Fredrik Lundh <fredrik@pythonware.com> | 2000-07-02 17:33:27 (GMT) |
commit | 7cafe4d7e466996d5fc32e871fe834e0e0c94282 (patch) | |
tree | dc3572d1d6bd95316c7a044cfd8639be014e3520 /Lib/sre_parse.py | |
parent | b19948b7fb96cfc2ed69bb58f2205d1399f1f9f5 (diff) | |
download | cpython-7cafe4d7e466996d5fc32e871fe834e0e0c94282.zip cpython-7cafe4d7e466996d5fc32e871fe834e0e0c94282.tar.gz cpython-7cafe4d7e466996d5fc32e871fe834e0e0c94282.tar.bz2 |
- actually enabled charset anchors in the engine (still not
used by the code generator)
- changed max repeat value in engine (to match earlier array fix)
- added experimental "which part matched?" mechanism to sre; see
http://hem.passagen.se/eff/2000_07_01_bot-archive.htm#416954
or python-dev for details.
Diffstat (limited to 'Lib/sre_parse.py')
-rw-r--r-- | Lib/sre_parse.py | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/Lib/sre_parse.py b/Lib/sre_parse.py index b263256..81ca217 100644 --- a/Lib/sre_parse.py +++ b/Lib/sre_parse.py @@ -451,6 +451,23 @@ def _parse(source, state): if gid is None: raise error, "unknown group name" subpattern.append((GROUP, gid)) + elif source.match("#"): + index = "" + while 1: + char = source.get() + if char is None: + raise error, "unterminated index" + if char == ")": + break + index = index + char + try: + index = int(index) + if index < 0 or index > MAXREPEAT: + raise ValueError + except ValueError: + raise error, "illegal index" + subpattern.append((INDEX, index)) + continue else: char = source.get() if char is None: |