2013-01-03 39 views
3

我有一個令牌模糊不清的問題。Python PLY Lex含糊

問題看起來像這樣。 我的代碼看起來像這樣,令牌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被識別爲「IDENTIFIER」 並且被空白包圍的單個NS_被標識爲「UN_1」。

我該如何處理?目前,串NS_XYZ簡直是splited成兩個記號UN1和Identifier

回答

1

如果你正在尋找讓「用空格包圍單NS_」,你可以添加空格字符類到您的令牌字符串:

def t_UN1(t): #NS_ 
    r'\s+NS\_\s+' 
    return t 

備註:對於PLY問題,ply-hack google group是詢問PLY相關問題的好地方。

+1

ply-hack告訴我儘管加入了該組,但我沒有權限發佈*。我已經嘗試了Web界面和電子郵件。 – Honza