|
10 | 10 | use Twig\Parser; |
11 | 11 | use Twig\Token; |
12 | 12 |
|
13 | | -class BinaryOperatorExpressionParser extends AbstractExpressionParser implements InfixExpressionParserInterface |
| 13 | +final class BinaryOperatorExpressionParser extends AbstractExpressionParser implements InfixExpressionParserInterface |
14 | 14 | { |
15 | 15 | public function __construct( |
16 | 16 | /** @var class-string<AbstractBinary> $nodeClass */ |
17 | | - private string $nodeClass, |
18 | | - private string $name, |
19 | | - private int $precedence, |
20 | | - private InfixAssociativity $associativity = InfixAssociativity::Left, |
| 17 | + private readonly string $nodeClass, |
| 18 | + private readonly string $name, |
| 19 | + private readonly int $precedence, |
| 20 | + private readonly InfixAssociativity $associativity = InfixAssociativity::Left, |
21 | 21 | ) { |
22 | 22 | } |
23 | 23 |
|
24 | | - /** |
25 | | - * @return AbstractBinary |
26 | | - */ |
27 | | - public function parse(Parser $parser, AbstractExpression $left, Token $token): AbstractExpression |
| 24 | + #[\Override] |
| 25 | + public function parse(Parser $parser, AbstractExpression $left, Token $token): AbstractBinary |
28 | 26 | { |
29 | 27 | $right = $parser->parseExpression($this->getAssociativity() === InfixAssociativity::Left ? $this->getPrecedence() + 1 : $this->getPrecedence()); |
30 | 28 |
|
31 | 29 | return new ($this->nodeClass)($left, $right, $token->getLine()); |
32 | 30 | } |
33 | 31 |
|
| 32 | + #[\Override] |
34 | 33 | public function getAssociativity(): InfixAssociativity |
35 | 34 | { |
36 | 35 | return $this->associativity; |
37 | 36 | } |
38 | 37 |
|
| 38 | + #[\Override] |
39 | 39 | public function getName(): string |
40 | 40 | { |
41 | 41 | return $this->name; |
42 | 42 | } |
43 | 43 |
|
| 44 | + #[\Override] |
44 | 45 | public function getPrecedence(): int |
45 | 46 | { |
46 | 47 | return $this->precedence; |
|
0 commit comments