From ae5adb02bf7e991111c05e71f9fb29c63b8cb11d Mon Sep 17 00:00:00 2001 From: Paul McGuire Date: Thu, 31 Jan 2019 05:32:53 -0600 Subject: Add compiler from rosettacode.org; fix bug in ParserElement.runTests that interpreted newlines in quotes as test delimiters --- pyparsing.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'pyparsing.py') 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 " 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 -- cgit v1.2.1