[英]Python PLY Lex ambiguity
我在令牌級別上存在歧義問題。
問題看起來像這樣。 我的代碼看起來像這樣,因此令牌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
....
我想實現這一點,例如。 string:NS_XYZ標識為“IDENTIFIER”,由空格包圍的單個NS_標識為“UN_1”。
我該怎么處理? 目前字符串NS_XYZ簡單地分為兩個標記UN1和IDENTIFIER
如果您希望“單個NS_被白色空格包圍”,則可以將空白字符類添加到您的標記字符串中:
def t_UN1(t): #NS_
r'\s+NS\_\s+'
return t
旁注:對於PLY問題, ply-hack谷歌小組是一個提出PLY相關問題的好地方。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.