blob: c424e5cc5f0011e7018df50409d037127c8c2c6f [file] [log] [blame]
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +01001<?php
2
3/*
4 * This file is part of Twig.
5 *
6 * (c) Fabien Potencier
7 * (c) Armin Ronacher
8 *
9 * For the full copyright and license information, please view the LICENSE
10 * file that was distributed with this source code.
11 */
12
13namespace Twig\Node\Expression\Binary;
14
15use Twig\Compiler;
16use Twig\Node\Expression\AbstractExpression;
17use Twig\Node\Node;
18
19abstract class AbstractBinary extends AbstractExpression
20{
21 public function __construct(Node $left, Node $right, int $lineno)
22 {
23 parent::__construct(['left' => $left, 'right' => $right], [], $lineno);
24 }
25
26 public function compile(Compiler $compiler): void
27 {
28 $compiler
29 ->raw('(')
30 ->subcompile($this->getNode('left'))
31 ->raw(' ')
32 ;
33 $this->operator($compiler);
34 $compiler
35 ->raw(' ')
36 ->subcompile($this->getNode('right'))
37 ->raw(')')
38 ;
39 }
40
41 abstract public function operator(Compiler $compiler): Compiler;
42}