Exemplo n.º 1
0
 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]
     };
 }
Exemplo n.º 2
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);
        }