public override IASTNode VisitExpr(MySqlCommandParser.ExprContext ctx) { if (null != ctx.booleanPrimary()) { return(Visit(ctx.booleanPrimary())); } if (null != ctx.logicalOperator()) { return(new PredicateBuilder(Visit(ctx.expr(0)), Visit(ctx.expr(1)), ctx.logicalOperator().GetText()).MergePredicate()); } // TODO deal with XOR return(Visit(ctx.expr()[0])); }
public override IASTNode VisitAssignmentValue(MySqlCommandParser.AssignmentValueContext ctx) { MySqlCommandParser.ExprContext expr = ctx.expr(); if (null != expr) { IASTNode result = Visit(expr); if (result is ColumnSegment) { return(new CommonExpressionSegment(ctx.Start.StartIndex, ctx.Stop.StopIndex, ctx.GetText())); } else { return(result); } } return(new CommonExpressionSegment(ctx.Start.StartIndex, ctx.Stop.StopIndex, ctx.GetText())); }