Java RuleContext类实现中的invokingState是什么?

Java RuleContext类实现中的invokingState是什么?,java,antlr,antlr4,Java,Antlr,Antlr4,我在JavaParser.java中看到了规则索引,但还有另一个整数值,即调用状态。此调用状态是否与getStartToken相关,或者与规则索引有何区别?调用状态是用于访问由该规则上下文表示的规则的ATN状态。这本书很好地解释了这一点: /**哪个状态调用了与此上下文关联的规则? *“返回地址”是invokingState的followState *如果parent为null,则该上下文对象表示的值应为-1 *开始规则。 */ 下面是一个例子: 这是规则start:e EOF的ATN其中e表

我在JavaParser.java中看到了规则索引,但还有另一个整数值,即调用状态。此调用状态是否与getStartToken相关,或者与规则索引有何区别?

调用状态是用于访问由该规则上下文表示的规则的ATN状态。这本书很好地解释了这一点:

/**哪个状态调用了与此上下文关联的规则? *“返回地址”是invokingState的followState *如果parent为null,则该上下文对象表示的值应为-1 *开始规则。 */

下面是一个例子:

这是规则
start:e EOF的ATN其中
e
表示子规则。状态4是
e
的调用状态,5是返回(或跟随)状态。请记住,可以从多个位置调用规则,因此不能使用从规则结束状态到调用规则的转换(因此需要
followState
成员)。该返回状态存储在从调用状态(本例中为状态4)到
e
的规则开始状态的中