更改antlr lexer解析器以支持“和”和“或”关键字

时间:2012-07-12 13:56:24

标签: parsing antlr lexer

我正在使用ANTLR来创建词法分析器/解析器。表达式可以具有这样的格式

if(a==1 || b==2 or c==3 && d==4 and e==5)

我有语言支持&&和||像这样 -

AND :   '&&'
OR  :   '||'

需要知道支持关键字“and”和“或”需要进行哪些更改。

2 个答案:

答案 0 :(得分:3)

只需在ANDOR

的定义中列出“和”和“或”作为替代选项
AND : '&&' | 'and'
OR  : '||' | 'or'

答案 1 :(得分:3)

只需在现有运营商之后添加它们作为替代品:

AND : '&&' | 'and';
OR  : '||' | 'or';

请务必将这两条规则添加到可能与IDENTIFIER"and"匹配的"or"规则之上。通过将其添加到IDENTIFIER之上,规则ANDOR优先于IDENTIFIER