# HG changeset patch # User catherine@Elli.myhome.westell.com # Date 1227266065 18000 # Node ID 2377461a35f3b6bc0eb8c581b080f76422396863 # Parent cc569f68a47810e5d983da0fefae702c5b377dc0 bug is in Combine() - removed it diff -r cc569f68a478 -r 2377461a35f3 cmd2.py --- a/cmd2.py Thu Nov 20 16:35:35 2008 -0500 +++ b/cmd2.py Fri Nov 21 06:14:25 2008 -0500 @@ -235,10 +235,10 @@ outputParser = pyparsing.oneOf(['>>','>'])('output') terminatorParser = pyparsing.oneOf(self.terminators)('terminator') (pyparsing.stringEnd ^ pyparsing.oneOf(self.terminators) ^ '\nEOF' ^ '|' ^ outputParser)('terminator') - statementParser = pyparsing.Combine(pyparsing.Word(pyparsing.printables)('command') + - pyparsing.SkipTo(terminatorParser ^ '\nEOF' ^ '|' ^ outputParser ^ pyparsing.stringEnd)('args') + - pyparsing.Optional(terminatorParser) - )('statement') + statementParser = (pyparsing.Word(pyparsing.printables)('command') + + pyparsing.SkipTo(terminatorParser ^ '\nEOF' ^ '|' ^ outputParser ^ pyparsing.stringEnd)('args') + + pyparsing.Optional(terminatorParser) + )('statement') self.commentGrammars.ignore(pyparsing.sglQuotedString).ignore(pyparsing.dblQuotedString).setParseAction(lambda x: '') self.commentInProgress.ignore(pyparsing.sglQuotedString).ignore(pyparsing.dblQuotedString).ignore(pyparsing.cStyleComment) parser = statementParser + \ diff -r cc569f68a478 -r 2377461a35f3 ignoreBug.py --- a/ignoreBug.py Thu Nov 20 16:35:35 2008 -0500 +++ b/ignoreBug.py Fri Nov 21 06:14:25 2008 -0500 @@ -1,8 +1,11 @@ -import pyparsing -statementParser = pyparsing.Combine(pyparsing.Word(pyparsing.printables)('command') + - pyparsing.SkipTo('|' ^ pyparsing.stringEnd)('args') - )('statement') -print statementParser.parseString('hello there /* you | fish */ box').dump() -statementParser.ignore(pyparsing.cStyleComment) -print statementParser.parseString('hello there /* you | fish */ box').dump() - \ No newline at end of file +from pyparsing import * + +teststr = 'please /* ignoreme: | oops */ findme: | kthx' +parser = Word(printables)('leadWord') + SkipTo('|')('statement') +print parser.parseString(teststr).statement +parser.ignore(cStyleComment) +print parser.parseString(teststr).statement +parser = Combine(parser) +print parser.parseString(teststr).statement +parser.ignore(cStyleComment) +print parser.parseString(teststr).statement