ParserRuleContext does not include field storage for the rule index since the context classes created by the code generator override the RuleIndex() method to return the correct value for that context. Since the parser interpreter does not use the context classes generated for a parser, this class (with slightly more memory overhead per node) is used to provide equivalent functionality.