From d1e1d8ee5cf5d6f0c64a41c8bf828f5c0bfefab0 Mon Sep 17 00:00:00 2001 From: numzero Date: Sat, 19 Apr 2025 12:37:44 +0300 Subject: [PATCH] build_expression! --- src/twopass.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/twopass.rs b/src/twopass.rs index bf6692c..a8ec575 100644 --- a/src/twopass.rs +++ b/src/twopass.rs @@ -128,7 +128,12 @@ fn lookup(scope: &BuildContext<'_>, loc: &ast::Location) -> Location { } fn build_expression(scope: &BuildContext<'_>, code: &ast::Expression) -> Expression { - todo!() + match code { + ast::Expression::Constant(c) => Expression::Constant(c.clone()), + ast::Expression::Variable(loc) => Expression::Variable(lookup(scope, loc)), + ast::Expression::Call(call) => Expression::Call(build_call(scope, call)), + ast::Expression::Function(f) => Expression::Function(build_in_scope(scope, f)), + } } fn build_call(scope: &BuildContext<'_>, code: &ast::Call) -> Call {