aboutsummaryrefslogtreecommitdiff
path: root/antlr-3.4/runtime/Python/tests/t014parser.py
diff options
context:
space:
mode:
Diffstat (limited to 'antlr-3.4/runtime/Python/tests/t014parser.py')
-rw-r--r--antlr-3.4/runtime/Python/tests/t014parser.py74
1 files changed, 74 insertions, 0 deletions
diff --git a/antlr-3.4/runtime/Python/tests/t014parser.py b/antlr-3.4/runtime/Python/tests/t014parser.py
new file mode 100644
index 0000000..e2965a4
--- /dev/null
+++ b/antlr-3.4/runtime/Python/tests/t014parser.py
@@ -0,0 +1,74 @@
+import antlr3
+import testbase
+import unittest
+
+class t014parser(testbase.ANTLRTest):
+ def setUp(self):
+ self.compileGrammar()
+
+
+ def testValid(self):
+ cStream = antlr3.StringStream('var foobar; gnarz(); var blupp; flupp ( ) ;')
+ lexer = self.getLexer(cStream)
+ tStream = antlr3.CommonTokenStream(lexer)
+ parser = self.getParser(tStream)
+ parser.document()
+
+ assert len(parser.reportedErrors) == 0, parser.reportedErrors
+ assert parser.events == [
+ ('decl', 'foobar'),
+ ('call', 'gnarz'),
+ ('decl', 'blupp'),
+ ('call', 'flupp')
+ ], parser.events
+
+
+ def testMalformedInput1(self):
+ cStream = antlr3.StringStream('var; foo();')
+ lexer = self.getLexer(cStream)
+ tStream = antlr3.CommonTokenStream(lexer)
+ parser = self.getParser(tStream)
+
+ parser.document()
+
+ # FIXME: currently strings with formatted errors are collected
+ # can't check error locations yet
+ assert len(parser.reportedErrors) == 1, parser.reportedErrors
+ assert parser.events == [], parser.events
+
+
+ def testMalformedInput2(self):
+ cStream = antlr3.StringStream('var foobar(); gnarz();')
+ lexer = self.getLexer(cStream)
+ tStream = antlr3.CommonTokenStream(lexer)
+ parser = self.getParser(tStream)
+
+ parser.document()
+
+ # FIXME: currently strings with formatted errors are collected
+ # can't check error locations yet
+ assert len(parser.reportedErrors) == 1, parser.reportedErrors
+ assert parser.events == [
+ ('call', 'gnarz'),
+ ], parser.events
+
+
+ def testMalformedInput3(self):
+ cStream = antlr3.StringStream('gnarz(; flupp();')
+ lexer = self.getLexer(cStream)
+ tStream = antlr3.CommonTokenStream(lexer)
+ parser = self.getParser(tStream)
+
+ parser.document()
+
+ # FIXME: currently strings with formatted errors are collected
+ # can't check error locations yet
+ assert len(parser.reportedErrors) == 1, parser.reportedErrors
+ assert parser.events == [
+ ('call', 'gnarz'),
+ ('call', 'flupp'),
+ ], parser.events
+
+
+if __name__ == '__main__':
+ unittest.main()