我正在使用 python 模块ply.lex
编写词法分析器。我得到了一些用正则表达式指定的标记,但现在我卡住了。我有一个list of Keywords
应该是的人token
。data
是一个包含大约 1000 个关键字的列表,这些关键字应该都被识别为一种关键字。这可以是例如:_Function1 _UDFType2
等等。列表中的所有单词都由空格分隔,就是这样。我只是想让词法分析器识别这个列表中的单词,这样它就会返回一个类型为“KEYWORD”的标记。
data = 'Keyword1 Keyword2 Keyword3 Keyword4'
def t_KEYWORD(t):
# ... r'\$' + data ??
return t
text = '''
Some test data
even more
$var = 2231
$[]Test this 2.31 + / &
'''
autoit = lex.lex()
autoit.input(text)
while True:
tok = autoit.token()
if not tok: break
print(tok)
所以我试图将变量添加到该正则表达式中,但它没有用。我总是得到:
No regular expression defined for rule 't_KEYWORD'
。
先感谢您!约翰