public override object VisitOrder_by_element([NotNull] KoraliumParser.Order_by_elementContext context) { var scalarExpressionNode = context.scalar; if (scalarExpressionNode != null) { var scalarExpression = Visit(scalarExpressionNode) as ScalarExpression; if (scalarExpression == null) { throw new SqlParserException("Could not find a scalar expression in order by element"); } bool ascending = true; if (context.order != null) { switch (context.order.Text.ToLower()) { case "asc": ascending = true; break; case "desc": ascending = false; break; } } return(new OrderExpression() { Ascending = ascending, Expression = scalarExpression }); } if (context.query != null) { return(Visit(context.query)); } return(base.VisitOrder_by_element(context)); }
/// <summary> /// Exit a parse tree produced by <see cref="KoraliumParser.order_by_element"/>. /// <para>The default implementation does nothing.</para> /// </summary> /// <param name="context">The parse tree.</param> public virtual void ExitOrder_by_element([NotNull] KoraliumParser.Order_by_elementContext context) { }
/// <summary> /// Visit a parse tree produced by <see cref="KoraliumParser.order_by_element"/>. /// <para> /// The default implementation returns the result of calling <see cref="AbstractParseTreeVisitor{Result}.VisitChildren(IRuleNode)"/> /// on <paramref name="context"/>. /// </para> /// </summary> /// <param name="context">The parse tree.</param> /// <return>The visitor result.</return> public virtual Result VisitOrder_by_element([NotNull] KoraliumParser.Order_by_elementContext context) { return(VisitChildren(context)); }