/** What state invoked the rule associated with this context?
* The "return address" is the followState of invokingState
* If parent is null, this should be -1 this context object represents
* the start rule.
*/
下面是一个例子:
这是规则start: e EOF;的ATN,其中e表示一个子规则。状态4是e的调用状态,5是返回(或跟随)状态。请记住,一个规则可以从许多地方调用,因此不能使用从规则结束状态到调用规则的转换(因此需要followState成员)。该返回状态存储在rule transition中,该状态从调用状态(本例中为状态4)变为e的规则开始状态
# 1 楼答案
调用状态是ATN状态,用于访问由该规则上下文表示的规则。这个comment in the source code很好地解释了这一点:
下面是一个例子:
这是规则
start: e EOF;
的ATN,其中e
表示一个子规则。状态4是e
的调用状态,5是返回(或跟随)状态。请记住,一个规则可以从许多地方调用,因此不能使用从规则结束状态到调用规则的转换(因此需要followState
成员)。该返回状态存储在rule transition中,该状态从调用状态(本例中为状态4)变为e
的规则开始状态