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