diff options
author | Paul McGuire <ptmcg@austin.rr.com> | 2019-01-31 05:32:53 -0600 |
---|---|---|
committer | Paul McGuire <ptmcg@austin.rr.com> | 2019-01-31 05:32:53 -0600 |
commit | ae5adb02bf7e991111c05e71f9fb29c63b8cb11d (patch) | |
tree | 0ce672575457da0ca1340605d99c4b138b8e87f8 /pyparsing.py | |
parent | 3157a77c9584a69839db0f8274c87438b912e99b (diff) | |
download | pyparsing-git-ae5adb02bf7e991111c05e71f9fb29c63b8cb11d.tar.gz |
Add compiler from rosettacode.org; fix bug in ParserElement.runTests that interpreted newlines in quotes as test delimiters
Diffstat (limited to 'pyparsing.py')
-rw-r--r-- | pyparsing.py | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/pyparsing.py b/pyparsing.py index ab804d5..4ba5b11 100644 --- a/pyparsing.py +++ b/pyparsing.py @@ -93,8 +93,8 @@ classes inherit from. Use the docstrings for examples of how to: namespace class """ -__version__ = "2.3.1" -__versionTime__ = "09 Jan 2019 23:26 UTC" +__version__ = "2.3.2" +__versionTime__ = "18 Jan 2019 22:15 UTC" __author__ = "Paul McGuire <ptmcg@users.sourceforge.net>" import string @@ -2517,7 +2517,9 @@ class ParserElement(object): comments = [] try: # convert newline marks to actual newlines, and strip leading BOM if present - t = t.replace(r'\n','\n').lstrip('\ufeff') + NL = Literal(r'\n').addParseAction(replaceWith('\n')).ignore(quotedString) + BOM = '\ufeff' + t = NL.transformString(t.lstrip(BOM)) result = self.parseString(t, parseAll=parseAll) out.append(result.dump(full=fullDump)) success = success and not failureTests @@ -3854,7 +3856,7 @@ class MatchFirst(ParseExpression): super(MatchFirst,self).__init__(exprs, savelist) if self.exprs: self.mayReturnEmpty = any(e.mayReturnEmpty for e in self.exprs) - # self.saveAsList = any(e.saveAsList for e in self.exprs) + self.saveAsList = any(e.saveAsList for e in self.exprs) else: self.mayReturnEmpty = True |