ply.lex
字句解析プログラムを作成するためにPythonモジュールを使用しています。いくつかのトークンを正規表現で指定しましたが、スタックしました。私はlist of Keywords
誰である必要がありtoken
ます。data
は約1000個のキーワードのリストであり、すべて1種類のキーワードとして認識されます。これは、たとえば、次_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)
そのため、その正規表現に変数を追加しようとしましたが、機能しませんでした。私はいつもgettinです:
No regular expression defined for rule 't_KEYWORD'
。
前もって感謝します!ジョン