【发布时间】:2014-08-18 00:51:34
【问题描述】:
代码取自 ply.lex 文档:http://www.dabeaz.com/ply/ply.html#ply_nn6
reserved = {
'if' : 'IF',
'then' : 'THEN',
'else' : 'ELSE',
'while' : 'WHILE',
...
}
tokens = ['LPAREN','RPAREN',...,'ID'] + list(reserved.values())
def t_ID(t):
r'[a-zA-Z_][a-zA-Z_0-9]*'
t.type = reserved.get(t.value,'ID') # Check for reserved words
return t
对于reserved这个词,我们需要更改令牌type。通过将t.value 传递给它来执行reserved.get() 是可以理解的。现在它应该返回reserved specification 的第二列中的实体。
但是为什么我们要传递给它ID?是什么意思,解决什么目的?
【问题讨论】:
标签: parsing python-2.7 tokenize lex lexer