Exemple #1
0
        /// <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);
        }
Exemple #2
0
        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
            });
        }