public override SqlExpression VisitInvokedFunction(PlSqlParser.InvokedFunctionContext context)
        {
            var name = SqlParseName.Object(context.objectName());

            InvokeArgument[] args = null;

            if (context.argument() != null)
            {
                args = context.argument().Select(x => SqlParseFunctionArgument.Form(Context, x))
                       .Select(x => new InvokeArgument(x.Id, x.Expression)).ToArray();
            }

            return(SqlExpression.Function(name, args));
        }
        public static SqlParseElementNode Form(IContext context, PlSqlParser.General_elementContext element)
        {
            var id  = SqlParseName.Object(element.objectName());
            var arg = element.function_argument();
            IEnumerable <SqlParseFunctionArgument> argNodes = null;

            if (arg != null)
            {
                argNodes = arg.argument().Select(x => SqlParseFunctionArgument.Form(context, x));
            }

            return(new SqlParseElementNode {
                Id = id,
                Argument = argNodes != null?argNodes.ToArray() : null
            });
        }