我有这个解析器规则:
multiplication
: pow (operator = (TIMES | DIVIDE | FLOOR_DIVIDE | MODULO) pow)*
;
我正在使用ctx.pow()
迭代pow,但我也想知道有什么运算符。不幸的是,ctx.operator
只给出了遇到的最后一个,而ctx.TIMES()
只给出了一个带有"*"的哑列表。
我真的必须为此制定一个子规则吗?
您可以执行operator +=
:
multiplication
: pow (operator += (TIMES | DIVIDE | FLOOR_DIVIDE | MODULO) pow)*
;
这将导致操作员被放置在CCD_ 5中。