1<?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)
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);
42}
43
44class_alias('Twig\Node\Expression\Binary\AbstractBinary', 'Twig_Node_Expression_Binary');
45