aboutsummaryrefslogtreecommitdiff
path: root/runtime/Python/tests/t003lexer.py
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/Python/tests/t003lexer.py')
-rw-r--r--runtime/Python/tests/t003lexer.py53
1 files changed, 53 insertions, 0 deletions
diff --git a/runtime/Python/tests/t003lexer.py b/runtime/Python/tests/t003lexer.py
new file mode 100644
index 0000000..3a32955
--- /dev/null
+++ b/runtime/Python/tests/t003lexer.py
@@ -0,0 +1,53 @@
+import antlr3
+import testbase
+import unittest
+
+class t003lexer(testbase.ANTLRTest):
+ def setUp(self):
+ self.compileGrammar()
+
+
+ def lexerClass(self, base):
+ class TLexer(base):
+ def emitErrorMessage(self, msg):
+ # report errors to /dev/null
+ pass
+
+ def reportError(self, re):
+ # no error recovery yet, just crash!
+ raise re
+
+ return TLexer
+
+
+ def testValid(self):
+ stream = antlr3.StringStream('0fooze1')
+ lexer = self.getLexer(stream)
+
+ token = lexer.nextToken()
+ self.failUnlessEqual(token.type, self.lexerModule.ZERO)
+
+ token = lexer.nextToken()
+ self.failUnlessEqual(token.type, self.lexerModule.FOOZE)
+
+ token = lexer.nextToken()
+ self.failUnlessEqual(token.type, self.lexerModule.ONE)
+
+ token = lexer.nextToken()
+ self.failUnlessEqual(token.type, self.lexerModule.EOF)
+
+
+ def testMalformedInput(self):
+ stream = antlr3.StringStream('2')
+ lexer = self.getLexer(stream)
+
+ try:
+ token = lexer.nextToken()
+ self.fail()
+
+ except antlr3.NoViableAltException, exc:
+ self.failUnlessEqual(exc.unexpectedType, '2')
+
+
+if __name__ == '__main__':
+ unittest.main()