/* * 访问参数列表,为了方便对参数进行管理,直接将参数列表保存在局部变量区中。而且由于参数列表是函数中最先被处理的变量,因此可以摆放在局部变量区的最开始位置 */ public override object VisitParameterList([NotNull] CMMParser.ParameterListContext context) { // 把参数加入到局部变量表中。运行时在遇到call指令的时候将要将参数按照顺序加入局部变更量表。 curLocalVariablesTable.Add(context.GetChild(1).GetText(), curLocalVariablesTableLength); curLocalVariablesTableLength++; if (context.parameterList() != null) { Visit(context.parameterList()); } return(null); }
/// <summary> /// Visit a parse tree produced by <see cref="CMMParser.parameterList"/>. /// <para> /// The default implementation returns the result of calling <see cref="AbstractParseTreeVisitor{Result}.VisitChildren(IRuleNode)"/> /// on <paramref name="context"/>. /// </para> /// </summary> /// <param name="context">The parse tree.</param> /// <return>The visitor result.</return> public virtual Result VisitParameterList([NotNull] CMMParser.ParameterListContext context) { return(VisitChildren(context)); }
/// <summary> /// Exit a parse tree produced by <see cref="CMMParser.parameterList"/>. /// <para>The default implementation does nothing.</para> /// </summary> /// <param name="context">The parse tree.</param> public virtual void ExitParameterList([NotNull] CMMParser.ParameterListContext context) { }