2008-12-29 61 views
3

我有令牌奇怪的問題 < NULL:「null」> 在我的JavaCC分析器中。 在表達類似JavaCC中的NULL令牌

String IsNullClause(): 
{ 
     String res = ""; 
} 
{ 
    <IS> {res += " IS ";} 
    [<NOT> {res += " NOT ";} ] 
    <NULL> {res += " NULL ";} 

{ 
    return res; 
} 
} 

分析器不看空的令牌,並拋出異常「空」的預期。如果我將標記定義更改爲< NULL:「null_val」>或其他工作正常。 這是我的錯誤還是JavaCC不接受'null'作爲標記值?

回答

3

有在JavaCC的包裝樣品的Java語言語法,具有以下令牌difinition:

< NULL: "null" >

,所以我敢肯定的JavaCC可以處理空令牌。

你確定在NULL之前沒有標記聲明匹配「null」嗎?令牌按照聲明的順序進行匹配。您可能會嘗試在開始時聲明NULL。