diff --git a/Lib/fontTools/voltLib/lexer.py b/Lib/fontTools/voltLib/lexer.py index c5d065afe..245397eac 100644 --- a/Lib/fontTools/voltLib/lexer.py +++ b/Lib/fontTools/voltLib/lexer.py @@ -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 diff --git a/Lib/fontTools/voltLib/lexer_test.py b/Lib/fontTools/voltLib/lexer_test.py index 01dd441b9..c52d35121 100644 --- a/Lib/fontTools/voltLib/lexer_test.py +++ b/Lib/fontTools/voltLib/lexer_test.py @@ -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)])