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