【发布时间】:2013-12-19 16:36:42
【问题描述】:
使用 antlr4,我可以像这样标记规则替代项:
e : e '*' e # Mult
| e '+' e # Add
| INT # Int
;
据我了解,在上述规则中,Mult 的优先级高于 Add,因为 Mult 在替代列表中位于 Add 之前。
例如,如果我写:
e : e '*' e # Mult
| e ('+'|'-') e # Add
| INT # Int
;
1 + 2 中的+ 和4 - 2 中的- 具有相同的优先级。
但是,现在替代方案不在顶层。有没有办法我可以分别标记规则 e '+' e # Add 和 e '-' e #Sub ,同时仍然让两个备选方案具有相同的优先级?
【问题讨论】:
标签: antlr antlr4 operator-precedence