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;
17
18abstract class AbstractBinary extends AbstractExpression
19{
20    public function __construct(\Twig_NodeInterface $left, \Twig_NodeInterface $right, $lineno)
21    {
22        parent::__construct(['left' => $left, 'right' => $right], [], $lineno);
23    }
24
25    public function compile(Compiler $compiler)
26    {
27        $compiler
28            ->raw('(')
29            ->subcompile($this->getNode('left'))
30            ->raw(' ')
31        ;
32        $this->operator($compiler);
33        $compiler
34            ->raw(' ')
35            ->subcompile($this->getNode('right'))
36            ->raw(')')
37        ;
38    }
39
40    abstract public function operator(Compiler $compiler);
41}
42
43class_alias('Twig\Node\Expression\Binary\AbstractBinary', 'Twig_Node_Expression_Binary');
44