fixed oeprator not to convert to bool first

This commit is contained in:
Moritz Gmeiner 2024-08-28 17:24:19 +02:00
commit 1e50140970

View file

@ -33,7 +33,7 @@ let rec interpret_expr (env : environment) (expr_node : expr_node) :
let* expr = interpret_expr env expr in let* expr = interpret_expr env expr in
match (op, expr) with match (op, expr) with
| Neg, Number x -> Number (-.x) |> Result.ok | Neg, Number x -> Number (-.x) |> Result.ok
| Not, Bool b -> Bool (not b) |> Result.ok | Not, value -> Bool (lox_value_to_bool value |> not) |> Result.ok
| _, _ -> | _, _ ->
let msg = let msg =
Printf.sprintf "Invalid operant of type %s to operator %s" Printf.sprintf "Invalid operant of type %s to operator %s"