如何向tokenizer添加关键字?

时间:2013-02-18 01:18:50

标签: python compiler-construction token tokenize

我使用generate_token函数来标记特定代码。问题是我无法将“print”和“input”添加为关键字。它将它们作为NAME而不是关键字返回。如何添加这些令牌?

import token
import tokenize

try:
    from cStringIO import StringIO
except:
    from io import StringIO
file = open(filename)
characters = file.read()
file.close()
code_reader = StringIO(characters).readline

for num, (ttyp, ttok, _, _, _) in enumerate(tokenize.generate_tokens(code_reader)):
    print("%5d %15s %r" % (num, token.tok_name[ttyp], ttok))

1 个答案:

答案 0 :(得分:1)

tokenize模块没有提及关键字的任何内容。所有关键字都以NAME的形式返回,然后您必须通过使用keyword模块来确定哪些是关键字。不过,如果你愿意,可以使用其他方法。