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;
14
15use Twig\Compiler;
16
17/**
18 * Represents a parent node.
19 *
20 * @author Fabien Potencier <fabien@symfony.com>
21 */
22class ParentExpression extends AbstractExpression
23{
24    public function __construct($name, $lineno, $tag = null)
25    {
26        parent::__construct([], ['output' => false, 'name' => $name], $lineno, $tag);
27    }
28
29    public function compile(Compiler $compiler)
30    {
31        if ($this->getAttribute('output')) {
32            $compiler
33                ->addDebugInfo($this)
34                ->write('$this->displayParentBlock(')
35                ->string($this->getAttribute('name'))
36                ->raw(", \$context, \$blocks);\n")
37            ;
38        } else {
39            $compiler
40                ->raw('$this->renderParentBlock(')
41                ->string($this->getAttribute('name'))
42                ->raw(', $context, $blocks)')
43            ;
44        }
45    }
46}
47
48class_alias('Twig\Node\Expression\ParentExpression', 'Twig_Node_Expression_Parent');
49