簡體   English   中英

Python PLY Lex模棱兩可

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM