【发布时间】:2015-07-19 00:40:42
【问题描述】:
一段时间以来,我一直在尝试使用 PLY 解析一些给定的文本,但我无法弄清楚。我定义了这些标记:
tokens = ['ID', 'INT', 'ASSIGNMENT']
我想将我找到的单词分类到这些标记中。例如,如果给定扫描仪:
var = 5
它应该打印这个:
ID : 'var'
ASSIGNMENT : '='
INT : 5
这很好用。问题是当程序给出以下文本时:
9var = 5
这个的输出是:
INT : 9
ID : 'var'
ASSIGNMENT : '='
INT : 5
这就是问题所在。它应该将 9var 作为 ID,并且根据 ID 正则表达式,这不是 ID 的有效名称。这些是我的正则表达式:
def t_ID(t):
r'[a-zA-Z_][a-zA-Z_0-9]*'
return t
def t_INT(t):
r'\d+'
t.value = int(t.value)
return t
t_ASSIGNMENT = r'\='
我该如何解决这个问题?
您的帮助将不胜感激!
【问题讨论】:
标签: python regex parsing token ply