我正在通过antlr4进行语言翻译。几乎所有事情都进展顺利,但是我现在遇到的问题是,在atlr4生成的规则函数中,我必须计算在JavaScript中调用子规则函数的次数。如果对规则生成的函数中的令牌执行此操作,则效果很好。 示例:
Listener.prototype.exitRequire = function (ctx)
{
var itemlength= ctx.ID().length;
}
对于规则:“要求:以字符串形式要求输入ID”。
但是当该规则内还有另一个子规则时,我就无法获得该子函数的计数。 示例:
对于规则:“订单:ORDER NEWLINE +(orderItem NEWLINE +)+ END ORDER NEWLINE +” 因为有一个子规则“订单项”,并且可以重复,所以我想知道它的执行次数或长度。
我像这样尝试过,但是没有用。
Listener.prototype.exitOrder = function (ctx)
{
var length= ctx.orderitem().length;
}
能否请您给我一种实现此目标的方法。谢谢。