2012-02-06 82 views
3

我希望將我的JavaCC定義的一部分區分大小寫,但不是全局的。javacc忽略本地情況?

TOKEN [IGNORE_CASE]: 
{ 
    < STRA : "a" > 
} 
TOKEN : 
{ 
    < STRB : "b" > 
} 

上面似乎使所有令牌(STRA和STRB)不區分大小寫。如何只忽略STRB的情況?

另外,我可以讓以下生產不區分大小寫,例如,只有「b = < ...>」這樣嗎?

private void expr() : 
{ 
    Token a, b; 
} 
{ 
    a = <STRA> | b = < STRB> 
} 

我承認我不能閱讀手冊弄清楚這一點。請幫助我。如果我沒有清楚解釋,請告訴我。謝謝。

回答

1

製作一個單獨的標記列表,區分大小寫並忽略大小寫標記,然後您不需要將全局聲明爲忽略大小寫= true。 試試代碼如下,

TOKEN [IGNORE_CASE]: { 
< STRB : "b" > 
} 

TOKEN : { 
    < STRA : "a" > 
}