コード例 #1
0
ファイル: CompileVisitor.cs プロジェクト: CMM-IDE/CMM-IDE
        /*
         * 访问参数列表,为了方便对参数进行管理,直接将参数列表保存在局部变量区中。而且由于参数列表是函数中最先被处理的变量,因此可以摆放在局部变量区的最开始位置
         */
        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);
        }
コード例 #2
0
 /// <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));
 }
コード例 #3
0
 /// <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)
 {
 }