blob: 60386d299690bd5855319a80e3d86aa728bc946a [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;
14
15use Twig\Compiler;
16use Twig\Node\Expression\AbstractExpression;
17
18/**
19 * Represents a node that outputs an expression.
20 *
21 * @author Fabien Potencier <fabien@symfony.com>
22 */
23class PrintNode extends Node implements NodeOutputInterface
24{
25 public function __construct(AbstractExpression $expr, int $lineno, string $tag = null)
26 {
27 parent::__construct(['expr' => $expr], [], $lineno, $tag);
28 }
29
30 public function compile(Compiler $compiler): void
31 {
32 $compiler
33 ->addDebugInfo($this)
34 ->write('echo ')
35 ->subcompile($this->getNode('expr'))
36 ->raw(";\n")
37 ;
38 }
39}