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