diff --git a/lib/eval.ml b/lib/eval.ml index 63f0c46..a4dd1f3 100644 --- a/lib/eval.ml +++ b/lib/eval.ml @@ -16,7 +16,7 @@ and function_type = { let rec eval_expr (scope: scope) (expr: Parser.expr_tree): value_type = match expr with | Parser.LetExpr (l) -> - eval_let_expr scope l.name l.value_expr l.in_expr + eval_let_expr scope l | Parser.FunExpr (ftree) -> eval_fun_expr scope ftree | Parser.IfExpr (Parser.If (cond_expr, then_expr, else_expr)) -> @@ -50,7 +50,12 @@ and eval_if_expr scope cond_expr then_expr else_expr = (match cond with | Int 0 -> eval_expr scope else_expr | _ -> eval_expr scope then_expr) -and eval_let_expr scope name value_expr in_expr = +and eval_let_expr scope ({ + name = name; + value_expr = value_expr; + in_expr = in_expr; + type_declare = _; +}: Parser.let_expr_tree) = let value = eval_expr scope value_expr in let new_scope = { scope with bindings = VariableBindingMap.add name value scope.bindings } in eval_expr new_scope in_expr