【发布时间】:2012-07-12 13:56:24
【问题描述】:
我正在使用 ANTLR 创建词法分析器/解析器。表达式可以有这样的格式
if(a==1 || b==2 or c==3 && d==4 and e==5)
我有支持 && 和 || 的语法像这样-
AND : '&&'
OR : '||'
需要知道支持关键字“and”和“or”需要进行哪些更改。
【问题讨论】:
我正在使用 ANTLR 创建词法分析器/解析器。表达式可以有这样的格式
if(a==1 || b==2 or c==3 && d==4 and e==5)
我有支持 && 和 || 的语法像这样-
AND : '&&'
OR : '||'
需要知道支持关键字“and”和“or”需要进行哪些更改。
【问题讨论】:
只需在AND 和OR 的定义中列出“and”和“or”作为替代项
AND : '&&' | 'and'
OR : '||' | 'or'
【讨论】:
只需在现有运算符之后添加它们作为替代:
AND : '&&' | 'and';
OR : '||' | 'or';
确保将这两个规则添加到可能匹配"and" 和"or" 的可能IDENTIFIER 规则之上。通过将它们添加到IDENTIFIER 之上,规则AND 和OR 优先于IDENTIFIER。
【讨论】: