View
@@ -0,0 +1,48 @@
#!/usr/bin/python -S
"""
lex_gen_test.py: Tests for lex_gen.py
"""
import unittest
from osh import lex
from core import lexer_gen # module under test
class LexerGenTest(unittest.TestCase):
def testTranslateRegex(self):
PAIRS = [
(r'a', r'a'),
(r'[a-z]', r'[a-z]'),
(r'[a-zA-Z.]+', r'[a-zA-Z.]+'),
(r'[a-zA-Z_][a-zA-Z0-9_]*\+?=', r'[a-zA-Z_][a-zA-Z0-9_]*\+?='),
(r'[."]*', r'[.\"]*'),
(r'\$', r'\$'),
(r'.*', r'.*'),
# Both of these accepted?
('\0', r'\000'),
(r'\0', r'\000'),
(r'\\', r'\\'),
(r'[\\]', r'\\'),
(r'.', r'.'),
(r'[^a]', r'[^a]'),
(r'[^a-z]', r'[^a-z]'),
# . isn't special inside
(r'[a\.]', r'[a.]'),
]
for py, expected in PAIRS:
#self.assertEqual(expected, lexer_gen.TranslateRegex(py))
print '---', py
actual = lexer_gen.TranslateRegex(py)
print repr(actual)
self.assertEqual(expected, actual)
print
print
if __name__ == '__main__':
unittest.main()
View
@@ -38,8 +38,10 @@ fastlex_MatchToken(PyObject *self, PyObject *args) {
&lex_mode, &line, &line_len, &start_pos)) {
return NULL;
}
/*
debug("lex_mode %d, line_len %d, start_pos %d\n",
lex_mode, line_len, start_pos);
*/
/*
for (int i = 0; i < line_len; ++i) {
View

This file was deleted.

Oops, something went wrong.
View
@@ -49,7 +49,6 @@ def MatchToken_Fast(lex_mode, line, start_pos):
def _MakeMatcher():
# NOTE: Could have an environment variable to control this for speed?
return MatchToken_Slow(lex.LEXER_DEF)
if fastlex: