blob: 25491971841ea59e643edef5dd05438b766bc561 [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;
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(string $name, int $lineno, string $tag = null)
25 {
26 parent::__construct([], ['output' => false, 'name' => $name], $lineno, $tag);
27 }
28
29 public function compile(Compiler $compiler): void
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}