/// <summary> /// general_element : /// general_element_part('.' general_element_part)* /// ; /// </summary> /// <param name="context"></param> /// <returns></returns> public override object VisitGeneral_element([NotNull] PlSqlParser.General_elementContext context) { Stop(); var result = base.VisitGeneral_element(context); Debug.Assert(result != null); return(result); }
public override SqlExpression VisitGeneral_element(PlSqlParser.General_elementContext context) { var element = SqlParseElementNode.Form(context); var name = element.Id; if (element.Argument == null || element.Argument.Length == 0) { return(SqlExpression.Reference(name)); } // TODO: support argument naming in DeveelDB var funcArgs = element.Argument.Select(x => x.Expression).ToArray(); return(SqlExpression.Function(name, funcArgs)); }
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 }); }
public static ElementNode Form(PlSqlParser.General_elementContext context) { var id = Name.Object(context.objectName()); var arg = context.function_argument(); IEnumerable <FunctionArgument> argNodes = null; if (arg != null) { argNodes = arg.argument().Select(FunctionArgument.Form); } return(new ElementNode { Id = id, Argument = argNodes != null?argNodes.ToArray() : null }); }