Esempio n. 1
0
        public override SyntaxNode VisitMethodDefinition([NotNull] GrammarParser.MethodDefinitionContext context)
        {
            var name          = SyntaxFactory.IdentifierName(context.name().GetText());
            var returnTypeDec = VisitTypeDeclaration(context.typeDeclaration()) as TypeSyntax;
            var info          = returnTypeDec.GetFirstToken().Text;

            returnTypeDec = SyntaxFactory.ParseName(string.Equals("void", info, StringComparison.OrdinalIgnoreCase)
                    ? "Task"
                    : $"Task<{info}>");

            var methodDec = SyntaxFactory.MethodDeclaration(returnTypeDec, name.GetFirstToken())
                            .AddParameterListParameters(context.methodParameterDefinition()
                                                        .Select(VisitMethodParameterDefinition)
                                                        .Select(i => i as ParameterSyntax)
                                                        .Where(i => i != null)
                                                        .ToArray());

            return(methodDec.WithSemicolonToken(SyntaxFactory.Token(SyntaxKind.SemicolonToken)));
        }
Esempio n. 2
0
        public override object VisitMethodDefinition([NotNull] GrammarParser.MethodDefinitionContext context)
        {
            var methodModel = new MethodModel();

            if (context == null)
            {
                return(methodModel);
            }

            methodModel.Verb         = (HttpVerb)Enum.Parse(typeof(HttpVerb), context.VERB().GetText());
            methodModel.Name         = context.name.Text;
            methodModel.ReturnedType = context.returnedType.Text;
            methodModel.Attributes   = context.attributes() != null ?
                                       (Dictionary <string, string>)Visit(context.attributes()) : new Dictionary <string, string>();
            methodModel.Parameters = context.parameters() != null ?
                                     (ParameterModel)Visit(context.parameters()) : new ParameterModel();


            return(methodModel);
        }
Esempio n. 3
0
 /// <summary>
 /// Exit a parse tree produced by <see cref="GrammarParser.methodDefinition"/>.
 /// <para>The default implementation does nothing.</para>
 /// </summary>
 /// <param name="context">The parse tree.</param>
 public virtual void ExitMethodDefinition([NotNull] GrammarParser.MethodDefinitionContext context)
 {
 }
Esempio n. 4
0
 /// <summary>
 /// Visit a parse tree produced by <see cref="GrammarParser.methodDefinition"/>.
 /// <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 VisitMethodDefinition([NotNull] GrammarParser.MethodDefinitionContext context)
 {
     return(VisitChildren(context));
 }