|
17 | 17 | use Squirrel\TwigPhpSyntax\TokenParser\BreakTokenParser; |
18 | 18 | use Squirrel\TwigPhpSyntax\TokenParser\ContinueTokenParser; |
19 | 19 | use Squirrel\TwigPhpSyntax\TokenParser\ForeachTokenParser; |
20 | | -use Twig\ExpressionParser; |
| 20 | +use Twig\ExpressionParser\Infix\BinaryOperatorExpressionParser; |
21 | 21 | use Twig\Extension\AbstractExtension; |
22 | 22 | use Twig\Node\Expression\Binary\AndBinary; |
23 | 23 | use Twig\Node\Expression\Binary\OrBinary; |
@@ -131,21 +131,13 @@ public function getTests(): array |
131 | 131 | ]; |
132 | 132 | } |
133 | 133 |
|
134 | | - public function getOperators(): array |
| 134 | + public function getExpressionParsers(): array |
135 | 135 | { |
136 | 136 | return [ |
137 | | - [ |
138 | | - ], |
139 | | - [ |
140 | | - // instead of "or" the PHP operator "||" does the same |
141 | | - '||' => ['precedence' => 10, 'class' => OrBinary::class, 'associativity' => ExpressionParser::OPERATOR_LEFT], |
142 | | - // instead of "and" the PHP operator "&&" does the same |
143 | | - '&&' => ['precedence' => 15, 'class' => AndBinary::class, 'associativity' => ExpressionParser::OPERATOR_LEFT], |
144 | | - // instead of "is same as(expression)" it becomes "=== expression" |
145 | | - '===' => ['precedence' => 20, 'class' => SameAsBinary::class, 'associativity' => ExpressionParser::OPERATOR_LEFT], |
146 | | - // instead of "is not same as(expression)" it becomes "!== expression" |
147 | | - '!==' => ['precedence' => 20, 'class' => NotSameAsBinary::class, 'associativity' => ExpressionParser::OPERATOR_LEFT], |
148 | | - ], |
| 137 | + new BinaryOperatorExpressionParser(OrBinary::class, '||', 10), |
| 138 | + new BinaryOperatorExpressionParser(AndBinary::class, '&&', 15), |
| 139 | + new BinaryOperatorExpressionParser(SameAsBinary::class, '===', 20), |
| 140 | + new BinaryOperatorExpressionParser(NotSameAsBinary::class, '!==', 20), |
149 | 141 | ]; |
150 | 142 | } |
151 | 143 | } |
0 commit comments