javacc在本地忽略大小写?

时间:2012-02-06 03:30:05

标签: javacc ignore-case

我希望我的JavaCC定义的一部分不区分大小写,但不是全局的。

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

上面似乎使所有令牌(STRA和STRB)不区分大小写。如何仅忽略STRB案例?

另外,我是否可以使以下生产案例不敏感,例如,只有“b =&lt; ...&gt;”所以?

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

我承认通过阅读手册我无法弄清楚这一点。请帮帮我。如果我没有清楚解释,请告诉我。谢谢。

1 个答案:

答案 0 :(得分:2)

创建一个单独的令牌列表,区分大小写并忽略大小写令牌,然后你不需要全局声明语句为Ignore case = true。 尝试如下代码,

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

TOKEN : {
  < STRA : "a" >
}