public override IList <SrcOp> RulePostamble(RuleFunction function, Rule r)
{
if (r.namedActions.ContainsKey("after") || r.namedActions.ContainsKey("finally"))
{
// See OutputModelController.buildLeftRecursiveRuleFunction
// and Parser.exitRule for other places which set stop.
CodeGenerator gen = GetGenerator();
TemplateGroup codegenTemplates = gen.GetTemplates();
Template setStopTokenAST = codegenTemplates.GetInstanceOf("recRuleSetStopToken");
Action setStopTokenAction = new Action(this, function.ruleCtx, setStopTokenAST);
IList <SrcOp> ops = new List <SrcOp>(1);
ops.Add(setStopTokenAction);
return(ops);
}
return(base.RulePostamble(function, r));
}