From d1288cacef4accaaa33d40f9b75a163d21fff400 Mon Sep 17 00:00:00 2001 From: Bennett Clement Date: Mon, 15 Jul 2024 23:19:46 +0800 Subject: [PATCH] Implement where and --- core/translate.rs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/core/translate.rs b/core/translate.rs index 405d824eb..5e2afaa75 100644 --- a/core/translate.rs +++ b/core/translate.rs @@ -569,6 +569,25 @@ fn translate_condition_expr( select: &Select, expr: &ast::Expr, jump_target: BranchOffset, +) -> Result<()> { + match expr { + ast::Expr::Binary(e1, op, e2) => match op { + ast::Operator::And => { + let _ = translate_condition_expr(program, select, e1, jump_target)?; + let _ = translate_condition_expr(program, select, e2, jump_target)?; + Ok(()) + } + _ => translate_condition_expr_leaf(program, select, expr, jump_target), + }, + _ => translate_condition_expr_leaf(program, select, expr, jump_target), + } +} + +fn translate_condition_expr_leaf( + program: &mut ProgramBuilder, + select: &Select, + expr: &ast::Expr, + jump_target: BranchOffset, ) -> Result<()> { match expr { ast::Expr::Between { .. } => todo!(),