2012-02-06 91 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" > 
}