3

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

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

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

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

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

4

2 回答 2

3

AND只需在and的定义中列出“and”和“or”作为替代项OR

AND : '&&' | 'and'
OR  : '||' | 'or'
于 2012-07-12T14:01:24.990 回答
3

只需在现有运算符之后添加它们作为替代:

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

确保将这两个规则添加到IDENTIFIER可能匹配"and"的可能规则之上"or"。通过将它们添加到 之上IDENTIFIER,规则ANDOR获得优先权IDENTIFIER

于 2012-07-12T14:02:53.803 回答