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); } }
/// <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) { }