public override void ExitSignature(GolangParser.SignatureContext context) { Parameters.TryGetValue(context.parameters(), out List <ParameterInfo> parameters); Signatures[context] = new Signature { Parameters = parameters?.ToArray() ?? new ParameterInfo[0], Result = Result?.ToArray() ?? new ParameterInfo[0] }; }
public override Base VisitSignature([NotNull] GolangParser.SignatureContext context) { var ret = new Signature(); ret.Parameters = context.parameters().Accept(this) as Parameters; if (context.result() != null) { var result = context.result().Accept(this); switch (result) { case AST.Type t: ret.Returns = new Parameters(); ret.Returns.AddChild(new Parameter(string.Empty, t)); break; case Parameters p: ret.Returns = p; break; } } return(ret); }