Skip to content

Commit

Permalink
Chore
Browse files Browse the repository at this point in the history
  • Loading branch information
KennedyTedesco committed Dec 15, 2024
1 parent 3263786 commit 1170925
Show file tree
Hide file tree
Showing 9 changed files with 28 additions and 28 deletions.
4 changes: 2 additions & 2 deletions src/Evaluator/EvalUnaryExpression.php
Original file line number Diff line number Diff line change
Expand Up @@ -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()),
};
}
Expand Down
28 changes: 14 additions & 14 deletions src/Evaluator/Evaluator.php
Original file line number Diff line number Diff line change
Expand Up @@ -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(),
};
}
Expand Down
2 changes: 1 addition & 1 deletion src/Parser/Parselet/ArrayParselet.php
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
Expand Down
2 changes: 1 addition & 1 deletion src/Parser/Parselet/CallExpressionParselet.php
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
Expand Down
4 changes: 2 additions & 2 deletions src/Parser/Parselet/FunctionLiteralParselet.php
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
Expand Down
4 changes: 2 additions & 2 deletions src/Parser/Parselet/IfExpressionParselet.php
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ public function parse(): ?Expression
return null;
}

$consequence = (new BlockStatementParser())($this->parser);
$consequence = new BlockStatementParser()($this->parser);

$alternative = null;

Expand All @@ -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);
Expand Down
2 changes: 1 addition & 1 deletion src/Parser/Parselet/WhileExpressionParselet.php
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
Expand Down
2 changes: 1 addition & 1 deletion src/Parser/Statements/BlockStatementParser.php
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
8 changes: 4 additions & 4 deletions src/Parser/Statements/StatementParser.php
Original file line number Diff line number Diff line change
Expand Up @@ -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),
};
}
}

0 comments on commit 1170925

Please sign in to comment.