public override AstNode?VisitParameterList(ParameterListContext context)
        {
            foreach (var param in context.parameterDefinition().Select(Visit).OfType <ParameterDefinition>())
            {
                _currentMessage !.Parameters.Add(param);
            }

            return(null);
        }
        public override ASTNode VisitParameterList([NotNull] ParameterListContext ctx)
        {
            FuncParamsNode @params;
            FuncParamNode  param = this.Visit(ctx.parameterDeclaration()).As <FuncParamNode>();

            if (ctx.parameterList() is null)
            {
                return(new FuncParamsNode(ctx.Start.Line, param));
            }

            @params = this.Visit(ctx.parameterList()).As <FuncParamsNode>();
            return(new FuncParamsNode(ctx.Start.Line, @params.Parameters.Concat(new[] { param })));
        }