diff --git a/src/Evaluator/EvalArrayBinaryExpression.php b/src/Evaluator/EvalArrayBinaryExpression.php index 96fd081..68bf03e 100644 --- a/src/Evaluator/EvalArrayBinaryExpression.php +++ b/src/Evaluator/EvalArrayBinaryExpression.php @@ -16,7 +16,7 @@ public function __invoke( ArrayObject $right, ): MonkeyObject { return match ($operator) { - '+' => new ArrayObject(array_merge($left->value, $right->value)), + '+' => new ArrayObject(array_merge($left->value(), $right->value())), default => ErrorObject::unknownOperator($left->typeLiteral(), $operator, $right->typeLiteral()), }; } diff --git a/src/Evaluator/EvalNumericBinaryExpression.php b/src/Evaluator/EvalNumericBinaryExpression.php index 15f36d7..e04d366 100644 --- a/src/Evaluator/EvalNumericBinaryExpression.php +++ b/src/Evaluator/EvalNumericBinaryExpression.php @@ -16,18 +16,18 @@ public function __invoke( MonkeyObject $right, ): MonkeyObject { return match ($operator) { - '+' => new $left($left->value + $right->value), - '-' => new $left($left->value - $right->value), - '*' => new $left($left->value * $right->value), - '%' => new $left($left->value % $right->value), - '**' => new $left($left->value ** $right->value), - '/' => new $left($left->value / $right->value), - '<' => BooleanObject::from($left->value < $right->value), - '>' => BooleanObject::from($left->value > $right->value), - '<=' => BooleanObject::from($left->value <= $right->value), - '>=' => BooleanObject::from($left->value >= $right->value), - '!=' => BooleanObject::from($left->value !== $right->value), - '==' => BooleanObject::from($left->value === $right->value), + '+' => new $left($left->value() + $right->value()), + '-' => new $left($left->value() - $right->value()), + '*' => new $left($left->value() * $right->value()), + '%' => new $left($left->value() % $right->value()), + '**' => new $left($left->value() ** $right->value()), + '/' => new $left($left->value() / $right->value()), + '<' => BooleanObject::from($left->value() < $right->value()), + '>' => BooleanObject::from($left->value() > $right->value()), + '<=' => BooleanObject::from($left->value() <= $right->value()), + '>=' => BooleanObject::from($left->value() >= $right->value()), + '!=' => BooleanObject::from($left->value() !== $right->value()), + '==' => BooleanObject::from($left->value() === $right->value()), default => ErrorObject::unknownOperator($left->typeLiteral(), $operator, $right->typeLiteral()), }; } diff --git a/src/Evaluator/EvalStringBinaryExpression.php b/src/Evaluator/EvalStringBinaryExpression.php index 86d5609..c8610c2 100644 --- a/src/Evaluator/EvalStringBinaryExpression.php +++ b/src/Evaluator/EvalStringBinaryExpression.php @@ -17,9 +17,9 @@ public function __invoke( StringObject $right, ): MonkeyObject { return match ($operator) { - '+' => new StringObject("{$left->value}{$right->value}"), - '!=' => BooleanObject::from($left->value !== $right->value), - '==' => BooleanObject::from($left->value === $right->value), + '+' => new StringObject("{$left->value()}{$right->value()}"), + '!=' => BooleanObject::from($left->value() !== $right->value()), + '==' => BooleanObject::from($left->value() === $right->value()), default => ErrorObject::unknownOperator($left->typeLiteral(), $operator, $right->typeLiteral()), }; }