/** Evaluate a boolean expression */ public void execBool(HplsqlParser.Bool_exprContext ctx) { if (ctx.bool_expr_atom() != null) { eval(ctx.bool_expr_atom()); return; } Var result = evalPop(ctx.bool_expr(0)); if (ctx.T_OPEN_P() != null) { if (ctx.T_NOT() != null) { result.negate(); } } else if (ctx.bool_expr_logical_operator() != null) { if (ctx.bool_expr_logical_operator().T_AND() != null) { if (result.isTrue()) { result = evalPop(ctx.bool_expr(1)); } } else if (ctx.bool_expr_logical_operator().T_OR() != null) { if (!result.isTrue()) { result = evalPop(ctx.bool_expr(1)); } } } exec.stackPush(result); }