diff options
author | Paul McGuire <ptmcg@austin.rr.com> | 2015-03-25 11:13:26 +0000 |
---|---|---|
committer | Paul McGuire <ptmcg@austin.rr.com> | 2015-03-25 11:13:26 +0000 |
commit | 70869715b99cdb0a24193e86f99bc954397bb509 (patch) | |
tree | d08fd649cd311bd9d5ad068574199e0c8fcb3782 /src/pyparsing.py | |
parent | 540d2bc30990056245481426d8b00c5edc490f03 (diff) | |
download | pyparsing-git-70869715b99cdb0a24193e86f99bc954397bb509.tar.gz |
- update to srange to accept unicode literals in the input StringEnd
- enhanced version of replaceWith
Diffstat (limited to 'src/pyparsing.py')
-rw-r--r-- | src/pyparsing.py | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/pyparsing.py b/src/pyparsing.py index 7b82f71..ff1ff60 100644 --- a/src/pyparsing.py +++ b/src/pyparsing.py @@ -70,6 +70,9 @@ import re import sre_constants
import collections
import pprint
+import functools
+import itertools
+
#~ sys.stderr.write( "testing pyparsing module, version %s, %s\n" % (__version__,__versionTime__ ) )
__all__ = [
@@ -3352,7 +3355,7 @@ stringEnd = StringEnd().setName("stringEnd") _escapedPunc = Word( _bslash, r"\[]-*.$+^?()~ ", exact=2 ).setParseAction(lambda s,l,t:t[0][1])
_escapedHexChar = Regex(r"\\0?[xX][0-9a-fA-F]+").setParseAction(lambda s,l,t:unichr(int(t[0].lstrip(r'\0x'),16)))
_escapedOctChar = Regex(r"\\0[0-7]+").setParseAction(lambda s,l,t:unichr(int(t[0][1:],8)))
-_singleChar = _escapedPunc | _escapedHexChar | _escapedOctChar | Word(printables, excludeChars=r'\]', exact=1)
+_singleChar = _escapedPunc | _escapedHexChar | _escapedOctChar | Word(printables, excludeChars=r'\]', exact=1) | Regex(r"\w", re.UNICODE)
_charRange = Group(_singleChar + Suppress("-") + _singleChar)
_reBracketExpr = Literal("[") + Optional("^").setResultsName("negate") + Group( OneOrMore( _charRange | _singleChar ) ).setResultsName("body") + "]"
@@ -3392,9 +3395,10 @@ def replaceWith(replStr): """Helper method for common parse actions that simply return a literal value. Especially
useful when used with C{L{transformString<ParserElement.transformString>}()}.
"""
- def _replFunc(*args):
- return [replStr]
- return _replFunc
+ #def _replFunc(*args):
+ # return [replStr]
+ #return _replFunc
+ return functools.partial(next, itertools.repeat([replStr]))
def removeQuotes(s,l,t):
"""Helper parse action for removing quotation marks from parsed quoted strings.
|