aboutsummaryrefslogtreecommitdiff
path: root/antlr-3.4/runtime/Python/tests/t022scopes.py
diff options
context:
space:
mode:
Diffstat (limited to 'antlr-3.4/runtime/Python/tests/t022scopes.py')
-rw-r--r--antlr-3.4/runtime/Python/tests/t022scopes.py167
1 files changed, 167 insertions, 0 deletions
diff --git a/antlr-3.4/runtime/Python/tests/t022scopes.py b/antlr-3.4/runtime/Python/tests/t022scopes.py
new file mode 100644
index 0000000..01bc597
--- /dev/null
+++ b/antlr-3.4/runtime/Python/tests/t022scopes.py
@@ -0,0 +1,167 @@
+import antlr3
+import testbase
+import unittest
+import textwrap
+
+
+class t022scopes(testbase.ANTLRTest):
+ def setUp(self):
+ self.compileGrammar()
+
+
+ def parserClass(self, base):
+ class TParser(base):
+ def emitErrorMessage(self, msg):
+ # report errors to /dev/null
+ pass
+
+ def reportError(self, re):
+ # no error recovery yet, just crash!
+ raise re
+
+ return TParser
+
+
+ def testa1(self):
+ cStream = antlr3.StringStream('foobar')
+ lexer = self.getLexer(cStream)
+ tStream = antlr3.CommonTokenStream(lexer)
+ parser = self.getParser(tStream)
+ parser.a()
+
+
+ def testb1(self):
+ cStream = antlr3.StringStream('foobar')
+ lexer = self.getLexer(cStream)
+ tStream = antlr3.CommonTokenStream(lexer)
+ parser = self.getParser(tStream)
+
+ try:
+ parser.b(False)
+ self.fail()
+ except antlr3.RecognitionException:
+ pass
+
+
+ def testb2(self):
+ cStream = antlr3.StringStream('foobar')
+ lexer = self.getLexer(cStream)
+ tStream = antlr3.CommonTokenStream(lexer)
+ parser = self.getParser(tStream)
+ parser.b(True)
+
+
+ def testc1(self):
+ cStream = antlr3.StringStream(
+ textwrap.dedent('''\
+ {
+ int i;
+ int j;
+ i = 0;
+ }
+ '''))
+
+ lexer = self.getLexer(cStream)
+ tStream = antlr3.CommonTokenStream(lexer)
+ parser = self.getParser(tStream)
+ symbols = parser.c()
+
+ self.failUnlessEqual(
+ symbols,
+ set(['i', 'j'])
+ )
+
+
+ def testc2(self):
+ cStream = antlr3.StringStream(
+ textwrap.dedent('''\
+ {
+ int i;
+ int j;
+ i = 0;
+ x = 4;
+ }
+ '''))
+
+ lexer = self.getLexer(cStream)
+ tStream = antlr3.CommonTokenStream(lexer)
+ parser = self.getParser(tStream)
+
+ try:
+ parser.c()
+ self.fail()
+ except RuntimeError, exc:
+ self.failUnlessEqual(exc.args[0], 'x')
+
+
+ def testd1(self):
+ cStream = antlr3.StringStream(
+ textwrap.dedent('''\
+ {
+ int i;
+ int j;
+ i = 0;
+ {
+ int i;
+ int x;
+ x = 5;
+ }
+ }
+ '''))
+
+ lexer = self.getLexer(cStream)
+ tStream = antlr3.CommonTokenStream(lexer)
+ parser = self.getParser(tStream)
+ symbols = parser.d()
+
+ self.failUnlessEqual(
+ symbols,
+ set(['i', 'j'])
+ )
+
+
+ def teste1(self):
+ cStream = antlr3.StringStream(
+ textwrap.dedent('''\
+ { { { { 12 } } } }
+ '''))
+
+ lexer = self.getLexer(cStream)
+ tStream = antlr3.CommonTokenStream(lexer)
+ parser = self.getParser(tStream)
+ res = parser.e()
+
+ self.failUnlessEqual(res, 12)
+
+
+ def testf1(self):
+ cStream = antlr3.StringStream(
+ textwrap.dedent('''\
+ { { { { 12 } } } }
+ '''))
+
+ lexer = self.getLexer(cStream)
+ tStream = antlr3.CommonTokenStream(lexer)
+ parser = self.getParser(tStream)
+ res = parser.f()
+
+ self.failUnlessEqual(res, None)
+
+
+ def testf2(self):
+ cStream = antlr3.StringStream(
+ textwrap.dedent('''\
+ { { 12 } }
+ '''))
+
+ lexer = self.getLexer(cStream)
+ tStream = antlr3.CommonTokenStream(lexer)
+ parser = self.getParser(tStream)
+ res = parser.f()
+
+ self.failUnlessEqual(res, None)
+
+
+
+if __name__ == '__main__':
+ unittest.main()