在Antlr2中,有许多语法选项可以设置(reference)。现在在Antlr3中我们有1/3的选项(reference)。
所以我有两个问题:
为了更具体地说明我的第二个问题,我希望能够做一些事情。首先,我想更改生成的词法分析器和解析器类的可见性(即Antlr2选项“classHeaderPrefix”)。
其次,我希望能够忽略在某些关键字中找到的任何空白令牌,例如“& keyword&”和“& k ey w o rd&”两者都匹配(即Antlr2选项“忽略”,我认为?)。
最后,我想让某些关键字不区分大小写(即Antlr2选项“caseSensitive”)。
答案 0 :(得分:2)
BluePlateSpecial写了:
为了更具体地说明我的第二个问题,我希望能够做一些事情。首先,我想更改生成的词法分析器类和解析器类的可见性(即Antlr2选项“classHeaderPrefix”)。
在v3中无法做到这一点。
BluePlateSpecial写了:
其次,我希望能够忽略在某些关键字中找到的任何空白令牌,例如“& keyword&”和“& k ey w o rd&”两者都匹配(即Antlr2选项“忽略”,我认为?)。
这些选项可能已被删除,因为词法分析器中的LL(*)算法比v2中使用的算法强大得多。现在,没有必要选择这样的选项,因为这样可以解决问题:
FOO
: '&' (' ' | 'a'..'z')+ '&'
;
BluePlateSpecial写了:
最后,我想让某些关键字不区分大小写(即Antlr2选项“caseSensitive”)。
除了以“硬”方式进行之外,在v3中也是不可能的:
BAR
: ('b' | 'B') ('a' | 'A') ('r' | 'R')
;