diff options
| author | Catherine Devlin <catherine.devlin@gmail.com> | 2008-11-21 06:14:25 -0500 |
|---|---|---|
| committer | Catherine Devlin <catherine.devlin@gmail.com> | 2008-11-21 06:14:25 -0500 |
| commit | 0e48c7997cb4ce094e38bc43f801677f5bb8cd78 (patch) | |
| tree | a6981e025167676435fc6cc26a7c44a8d765c0c2 | |
| parent | af9677953228478d28b715a7f44283cb5fe64cd0 (diff) | |
| download | cmd2-git-0e48c7997cb4ce094e38bc43f801677f5bb8cd78.tar.gz | |
bug is in Combine() - removed it
| -rwxr-xr-x | cmd2.py | 8 | ||||
| -rw-r--r-- | ignoreBug.py | 19 |
2 files changed, 15 insertions, 12 deletions
@@ -235,10 +235,10 @@ class Cmd(cmd.Cmd): 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 --git a/ignoreBug.py b/ignoreBug.py index 7696b860..37819336 100644 --- a/ignoreBug.py +++ b/ignoreBug.py @@ -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 |
