diff --git a/src/Evaluator/EvalUnaryExpression.php b/src/Evaluator/EvalUnaryExpression.php index 0b89331..26bb673 100644 --- a/src/Evaluator/EvalUnaryExpression.php +++ b/src/Evaluator/EvalUnaryExpression.php @@ -13,8 +13,8 @@ public function __invoke(string $operator, MonkeyObject $monkeyObject): MonkeyOb { return match (true) { $monkeyObject instanceof ErrorObject => $monkeyObject, - $operator === '!' => (new EvalNotOperatorExpression())($monkeyObject), - $operator === '-' => (new EvalMinusUnaryOperatorExpression())($monkeyObject), + $operator === '!' => new EvalNotOperatorExpression()($monkeyObject), + $operator === '-' => new EvalMinusUnaryOperatorExpression()($monkeyObject), default => ErrorObject::unknownOperator($operator, $monkeyObject->typeLiteral()), }; } diff --git a/src/Evaluator/Evaluator.php b/src/Evaluator/Evaluator.php index f39f38b..161e580 100644 --- a/src/Evaluator/Evaluator.php +++ b/src/Evaluator/Evaluator.php @@ -54,33 +54,33 @@ public function __construct() public function eval(Node $node, Environment $environment): MonkeyObject { return match (true) { - $node instanceof Program => (new EvalProgram($this, $environment))($node), + $node instanceof Program => new EvalProgram($this, $environment)($node), $node instanceof IntegerLiteral => new IntegerObject($node->value), $node instanceof FloatLiteral => new FloatObject($node->value), $node instanceof StringLiteral => new StringObject($node->value), $node instanceof BooleanLiteral => BooleanObject::from($node->value), - $node instanceof BlockStatement => (new EvalBlockStatement($this, $environment))($node), - $node instanceof IfExpression => (new EvalIfExpression($this, $environment))($node), - $node instanceof WhileExpression => (new EvalWhileExpression($this, $environment))($node), + $node instanceof BlockStatement => new EvalBlockStatement($this, $environment)($node), + $node instanceof IfExpression => new EvalIfExpression($this, $environment)($node), + $node instanceof WhileExpression => new EvalWhileExpression($this, $environment)($node), $node instanceof FunctionLiteral => new FunctionObject($node->parameters, $node->body, $environment), $node instanceof ExpressionStatement => $this->eval($node->expression, $environment), - $node instanceof ReturnStatement => (new EvalReturnStatement($this, $environment))($node), - $node instanceof CallExpression => (new EvalCallExpression($this, $environment))($node), - $node instanceof ArrayLiteral => (new EvalArrayLiteral($this, $environment))($node), - $node instanceof IndexExpression => (new EvalIndexExpression($this, $environment))($node), - $node instanceof UnaryExpression => (new EvalUnaryExpression())( + $node instanceof ReturnStatement => new EvalReturnStatement($this, $environment)($node), + $node instanceof CallExpression => new EvalCallExpression($this, $environment)($node), + $node instanceof ArrayLiteral => new EvalArrayLiteral($this, $environment)($node), + $node instanceof IndexExpression => new EvalIndexExpression($this, $environment)($node), + $node instanceof UnaryExpression => new EvalUnaryExpression()( $node->operator, $this->eval($node->right, $environment) ), - $node instanceof BinaryExpression => (new EvalBinaryExpression())( + $node instanceof BinaryExpression => new EvalBinaryExpression()( $node->operator, $this->eval($node->left, $environment), $this->eval($node->right, $environment) ), - $node instanceof LetStatement => (new EvalLetStatement($this, $environment))($node), - $node instanceof AssignStatement => (new EvalAssingStatement($this, $environment))($node), - $node instanceof IdentifierExpression => (new EvalIdentifier($environment))($node), - $node instanceof PostfixExpression => (new EvalPostfixExpression($environment))($node), + $node instanceof LetStatement => new EvalLetStatement($this, $environment)($node), + $node instanceof AssignStatement => new EvalAssingStatement($this, $environment)($node), + $node instanceof IdentifierExpression => new EvalIdentifier($environment)($node), + $node instanceof PostfixExpression => new EvalPostfixExpression($environment)($node), default => NullObject::instance(), }; } diff --git a/src/Parser/Parselet/ArrayParselet.php b/src/Parser/Parselet/ArrayParselet.php index d888d19..0e5909f 100644 --- a/src/Parser/Parselet/ArrayParselet.php +++ b/src/Parser/Parselet/ArrayParselet.php @@ -21,7 +21,7 @@ public function parse(): Expression { $token = $this->parser->curToken(); - $elements = (new ExpressionListParser())($this->parser, TokenType::RBRACKET); + $elements = new ExpressionListParser()($this->parser, TokenType::RBRACKET); return new ArrayLiteral($token, $elements); } diff --git a/src/Parser/Parselet/CallExpressionParselet.php b/src/Parser/Parselet/CallExpressionParselet.php index 0d800bd..c4b5240 100644 --- a/src/Parser/Parselet/CallExpressionParselet.php +++ b/src/Parser/Parselet/CallExpressionParselet.php @@ -21,7 +21,7 @@ public function parse(Expression $expression): Expression { $token = $this->parser->curToken(); - $arguments = (new ExpressionListParser())($this->parser, TokenType::RPAREN); + $arguments = new ExpressionListParser()($this->parser, TokenType::RPAREN); return new CallExpression($token, $expression, $arguments); } diff --git a/src/Parser/Parselet/FunctionLiteralParselet.php b/src/Parser/Parselet/FunctionLiteralParselet.php index 91d506e..efe45a4 100644 --- a/src/Parser/Parselet/FunctionLiteralParselet.php +++ b/src/Parser/Parselet/FunctionLiteralParselet.php @@ -26,13 +26,13 @@ public function parse(): ?Expression return null; } - $parameters = (new FunctionParametersParser())($this->parser); + $parameters = new FunctionParametersParser()($this->parser); if (!$this->parser->expectPeek(TokenType::LBRACE)) { return null; } - $body = (new BlockStatementParser())($this->parser); + $body = new BlockStatementParser()($this->parser); return new FunctionLiteral($token, $parameters, $body); } diff --git a/src/Parser/Parselet/IfExpressionParselet.php b/src/Parser/Parselet/IfExpressionParselet.php index bd6096a..1892e88 100644 --- a/src/Parser/Parselet/IfExpressionParselet.php +++ b/src/Parser/Parselet/IfExpressionParselet.php @@ -39,7 +39,7 @@ public function parse(): ?Expression return null; } - $consequence = (new BlockStatementParser())($this->parser); + $consequence = new BlockStatementParser()($this->parser); $alternative = null; @@ -50,7 +50,7 @@ public function parse(): ?Expression return null; } - $alternative = (new BlockStatementParser())($this->parser); + $alternative = new BlockStatementParser()($this->parser); } return new IfExpression($token, $condition, $consequence, $alternative); diff --git a/src/Parser/Parselet/WhileExpressionParselet.php b/src/Parser/Parselet/WhileExpressionParselet.php index 114c5df..3033a9f 100644 --- a/src/Parser/Parselet/WhileExpressionParselet.php +++ b/src/Parser/Parselet/WhileExpressionParselet.php @@ -39,7 +39,7 @@ public function parse(): ?Expression return null; } - $consequence = (new BlockStatementParser())($this->parser); + $consequence = new BlockStatementParser()($this->parser); return new WhileExpression($token, $condition, $consequence); } diff --git a/src/Parser/Statements/BlockStatementParser.php b/src/Parser/Statements/BlockStatementParser.php index 8afdc39..96164f4 100644 --- a/src/Parser/Statements/BlockStatementParser.php +++ b/src/Parser/Statements/BlockStatementParser.php @@ -21,7 +21,7 @@ public function __invoke(Parser $parser): BlockStatement $statements = []; while (!$parser->curToken()->is(TokenType::RBRACE) && !$parser->curToken()->is(TokenType::EOF)) { - $statement = (new StatementParser())($parser); + $statement = new StatementParser()($parser); if ($statement instanceof Statement) { $statements[] = $statement; diff --git a/src/Parser/Statements/StatementParser.php b/src/Parser/Statements/StatementParser.php index 27c4937..7b0e6a0 100644 --- a/src/Parser/Statements/StatementParser.php +++ b/src/Parser/Statements/StatementParser.php @@ -14,15 +14,15 @@ public function __invoke(Parser $parser): ?Statement { return match (true) { $parser->curToken()->is(TokenType::IDENT) && $parser->peekToken()->is(TokenType::ASSIGN) => - (new AssignStatementParser())($parser), + new AssignStatementParser()($parser), $parser->curToken()->is(TokenType::LET) => - (new LetStatementParser())($parser), + new LetStatementParser()($parser), $parser->curToken()->is(TokenType::RETURN) => - (new ReturnStatementParser())($parser), + new ReturnStatementParser()($parser), - default => (new ExpressionStatementParser())($parser), + default => new ExpressionStatementParser()($parser), }; } }