summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCatherine Devlin <catherine.devlin@gmail.com>2008-11-21 06:14:25 -0500
committerCatherine Devlin <catherine.devlin@gmail.com>2008-11-21 06:14:25 -0500
commit0e48c7997cb4ce094e38bc43f801677f5bb8cd78 (patch)
treea6981e025167676435fc6cc26a7c44a8d765c0c2
parentaf9677953228478d28b715a7f44283cb5fe64cd0 (diff)
downloadcmd2-git-0e48c7997cb4ce094e38bc43f801677f5bb8cd78.tar.gz
bug is in Combine() - removed it
-rwxr-xr-xcmd2.py8
-rw-r--r--ignoreBug.py19
2 files changed, 15 insertions, 12 deletions
diff --git a/cmd2.py b/cmd2.py
index a53810d2..d09482c6 100755
--- a/cmd2.py
+++ b/cmd2.py
@@ -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