public override void ExitMethod_signature(ErrorLogParser.Method_signatureContext context)
    {
        var className = string.Join(".",
                                    context.class_name().IDENTIFIER().Select(id => id.GetText()));

        Collector.PushStackFrameClass(className);

        var methodName = context.method_name().IDENTIFIER().GetText();

        Collector.PushStackFrameMethod(methodName);

        var paramList  = context.parameter_list();
        var typeNames  = paramList.type().Select(t => t.GetText());
        var paramNames = paramList.IDENTIFIER().Select(i => i.GetText());

        foreach (var(typeName, paramName) in typeNames.Zip(paramNames, (t, p) => (t, p)))
        {
            Collector.pushStackFrameParameter(typeName, paramName);
        }
    }
Beispiel #2
0
 /// <summary>
 /// Exit a parse tree produced by <see cref="ErrorLogParser.method_signature"/>.
 /// <para>The default implementation does nothing.</para>
 /// </summary>
 /// <param name="context">The parse tree.</param>
 public virtual void ExitMethod_signature([NotNull] ErrorLogParser.Method_signatureContext context)
 {
 }