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;
14
15use Twig\Compiler;
16
17/**
18 * Represents a block node.
19 *
20 * @author Fabien Potencier <fabien@symfony.com>
21 */
22class BlockNode extends Node
23{
24    public function __construct($name, \Twig_NodeInterface $body, $lineno, $tag = null)
25    {
26        parent::__construct(['body' => $body], ['name' => $name], $lineno, $tag);
27    }
28
29    public function compile(Compiler $compiler)
30    {
31        $compiler
32            ->addDebugInfo($this)
33            ->write(sprintf("public function block_%s(\$context, array \$blocks = [])\n", $this->getAttribute('name')), "{\n")
34            ->indent()
35        ;
36
37        $compiler
38            ->subcompile($this->getNode('body'))
39            ->outdent()
40            ->write("}\n\n")
41        ;
42    }
43}
44
45class_alias('Twig\Node\BlockNode', 'Twig_Node_Block');
46