diff options
Diffstat (limited to 'public/system/library/template/Twig/Node/Import.php')
-rw-r--r-- | public/system/library/template/Twig/Node/Import.php | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/public/system/library/template/Twig/Node/Import.php b/public/system/library/template/Twig/Node/Import.php new file mode 100644 index 0000000..df37af3 --- /dev/null +++ b/public/system/library/template/Twig/Node/Import.php @@ -0,0 +1,49 @@ +<?php + +/* + * This file is part of Twig. + * + * (c) 2009 Fabien Potencier + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/** + * Represents an import node. + * + * @author Fabien Potencier <fabien@symfony.com> + */ +class Twig_Node_Import extends Twig_Node +{ + public function __construct(Twig_Node_Expression $expr, Twig_Node_Expression $var, $lineno, $tag = null) + { + parent::__construct(array('expr' => $expr, 'var' => $var), array(), $lineno, $tag); + } + + public function compile(Twig_Compiler $compiler) + { + $compiler + ->addDebugInfo($this) + ->write('') + ->subcompile($this->getNode('var')) + ->raw(' = ') + ; + + if ($this->getNode('expr') instanceof Twig_Node_Expression_Name && '_self' === $this->getNode('expr')->getAttribute('name')) { + $compiler->raw('$this'); + } else { + $compiler + ->raw('$this->loadTemplate(') + ->subcompile($this->getNode('expr')) + ->raw(', ') + ->repr($compiler->getFilename()) + ->raw(', ') + ->repr($this->getLine()) + ->raw(')') + ; + } + + $compiler->raw(";\n"); + } +} |