]> git.phdru.name Git - phdru.name/cgi-bin/blog-ru/search-tags.git/blobdiff - parser/test_lexer.py
Use grako instead of PLY to compile EBNF to Python
[phdru.name/cgi-bin/blog-ru/search-tags.git] / parser / test_lexer.py
diff --git a/parser/test_lexer.py b/parser/test_lexer.py
deleted file mode 100755 (executable)
index ba46ee6..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-#! /usr/bin/env python
-
-import unittest
-
-class TestLexer(unittest.TestCase):
-    def test_01_import(self):
-        global lexer
-        from parser import lexer
-
-    def test_02_tag(self):
-        global LexToken
-        from ply.lex import LexToken
-        lexer.input('xxx')
-        tokens = list(lexer)
-        self.assertEqual(len(tokens), 1)
-        lextoken = tokens[0]
-        self.assertEqual(lextoken.type, 'NAME')
-        self.assertEqual(lextoken.value, 'xxx')
-        self.assertEqual(lextoken.lineno, 1)
-        self.assertEqual(lextoken.lexpos, 0)
-
-    def test_03_bad_tag(self):
-        from ply.lex import LexError
-        lexer.input('XXX')
-        self.assertRaises(LexError, list, lexer)
-
-    def test_04_expression(self):
-        lexer.input('!(xxx&yyy)')
-        tokens = list(lexer)
-        self.assertEqual(len(tokens), 6)
-        lextoken = tokens[0]
-        self.assertEqual(lextoken.type, 'NOT_OP')
-        self.assertEqual(lextoken.value, '!')
-        self.assertEqual(lextoken.lineno, 1)
-        self.assertEqual(lextoken.lexpos, 0)
-        lextoken = tokens[1]
-        self.assertEqual(lextoken.type, '(')
-        self.assertEqual(lextoken.value, '(')
-        self.assertEqual(lextoken.lineno, 1)
-        self.assertEqual(lextoken.lexpos, 1)
-        lextoken = tokens[2]
-        self.assertEqual(lextoken.type, 'NAME')
-        self.assertEqual(lextoken.value, 'xxx')
-        self.assertEqual(lextoken.lineno, 1)
-        self.assertEqual(lextoken.lexpos, 2)
-        lextoken = tokens[3]
-        self.assertEqual(lextoken.type, 'AND_OP')
-        self.assertEqual(lextoken.value, '&')
-        self.assertEqual(lextoken.lineno, 1)
-        self.assertEqual(lextoken.lexpos, 5)
-        lextoken = tokens[4]
-        self.assertEqual(lextoken.type, 'NAME')
-        self.assertEqual(lextoken.value, 'yyy')
-        self.assertEqual(lextoken.lineno, 1)
-        self.assertEqual(lextoken.lexpos, 6)
-        lextoken = tokens[5]
-        self.assertEqual(lextoken.type, ')')
-        self.assertEqual(lextoken.value, ')')
-        self.assertEqual(lextoken.lineno, 1)
-        self.assertEqual(lextoken.lexpos, 9)
-
-    def test_05_expression_2(self):
-        lexer.input('xxx and  yyy')
-        tokens = list(lexer)
-        self.assertEqual(len(tokens), 5)
-        lextoken = tokens[0]
-        self.assertEqual(lextoken.type, 'NAME')
-        self.assertEqual(lextoken.value, 'xxx')
-        self.assertEqual(lextoken.lineno, 1)
-        self.assertEqual(lextoken.lexpos, 0)
-        lextoken = tokens[1]
-        self.assertEqual(lextoken.type, 'SP1')
-        self.assertEqual(lextoken.value, ' ')
-        self.assertEqual(lextoken.lineno, 1)
-        self.assertEqual(lextoken.lexpos, 3)
-        lextoken = tokens[2]
-        self.assertEqual(lextoken.type, 'OP_WORD')
-        self.assertEqual(lextoken.value, 'and')
-        self.assertEqual(lextoken.lineno, 1)
-        self.assertEqual(lextoken.lexpos, 4)
-        lextoken = tokens[3]
-        self.assertEqual(lextoken.type, 'SP1')
-        self.assertEqual(lextoken.value, '  ')
-        self.assertEqual(lextoken.lineno, 1)
-        self.assertEqual(lextoken.lexpos, 7)
-        lextoken = tokens[4]
-        self.assertEqual(lextoken.type, 'NAME')
-        self.assertEqual(lextoken.value, 'yyy')
-        self.assertEqual(lextoken.lineno, 1)
-        self.assertEqual(lextoken.lexpos, 9)
-
-if __name__ == "__main__":
-    unittest.main()