[voltLib] Add LC, digits, period, underscore as valid NAME characters in lexer

This commit is contained in:
moyogo 2015-10-07 14:04:59 +01:00
parent 9fb1085c5e
commit 7dffdbece1
2 changed files with 8 additions and 2 deletions

View File

@ -14,8 +14,10 @@ class Lexer(object):
CHAR_UC_LETTER_ = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
CHAR_LC_LETTER_ = "abcdefghijklmnopqrstuvwxyz"
CHAR_UNDERSCORE_ = "_"
CHAR_NAME_START_ = CHAR_UC_LETTER_
CHAR_NAME_CONTINUATION_ = CHAR_UC_LETTER_ + CHAR_UNDERSCORE_
CHAR_PERIOD_ = "."
CHAR_NAME_START_ = CHAR_UC_LETTER_ + CHAR_LC_LETTER_ + CHAR_PERIOD_ + \
CHAR_UNDERSCORE_
CHAR_NAME_CONTINUATION_ = CHAR_NAME_START_ + CHAR_DIGIT_
def __init__(self, text, filename):
self.filename_ = filename

View File

@ -21,6 +21,10 @@ class LexerTest(unittest.TestCase):
[(Lexer.STRING, "foo"), (Lexer.STRING, "bar")])
self.assertRaises(VoltLibError, lambda: lex('"foo\n bar"'))
def test_name(self):
self.assertEqual(lex('DEF_FOO bar.alt1'),
[(Lexer.NAME, "DEF_FOO"), (Lexer.NAME, "bar.alt1")])
def test_number(self):
self.assertEqual(lex("123 -456"),
[(Lexer.NUMBER, 123), (Lexer.NUMBER, -456)])