我在标记级别上遇到了歧义问题。
问题看起来是这样的。我的代码看起来像这样,所以令牌t_UN1具有更高的优先级。
t_ignore = ' \t\v\r' # whitespace
....
def t_UN1(t): #NS_
r'NS\_'
return t
def t_IDENTIFIER(t):
r'[a-zA-Z][a-zA-Z0-9_]*'
return t
....我想实现这一点,例如。字符串: NS_XYZ标识为“NS_”,由空格包围的单个标识符标识为"UN_1“。
我该怎么处理呢?目前,string标识符被简单地拆分成两个标记UN1和NS_XYZ
发布于 2013-03-11 23:16:44
如果你想得到‘由空格包围的单个NS_’,你可以将空格字符类添加到你的标记字符串中:
def t_UN1(t): #NS_
r'\s+NS\_\s+'
return t旁注:对于PLY问题,ply-hack google group是一个询问PLY相关问题的好地方。
https://stackoverflow.com/questions/14147529
复制相似问题