Import.php (1025B)
1 <?php 2 3 /* 4 * This file is part of Twig. 5 * 6 * (c) 2009 Fabien Potencier 7 * 8 * For the full copyright and license information, please view the LICENSE 9 * file that was distributed with this source code. 10 */ 11 12 /** 13 * Imports macros. 14 * 15 * <pre> 16 * {% import 'forms.html' as forms %} 17 * </pre> 18 */ 19 class Twig_TokenParser_Import extends Twig_TokenParser 20 { 21 public function parse(Twig_Token $token) 22 { 23 $macro = $this->parser->getExpressionParser()->parseExpression(); 24 $this->parser->getStream()->expect('as'); 25 $var = new Twig_Node_Expression_AssignName($this->parser->getStream()->expect(Twig_Token::NAME_TYPE)->getValue(), $token->getLine()); 26 $this->parser->getStream()->expect(Twig_Token::BLOCK_END_TYPE); 27 28 $this->parser->addImportedSymbol('template', $var->getAttribute('name')); 29 30 return new Twig_Node_Import($macro, $var, $token->getLine(), $this->getTag()); 31 } 32 33 public function getTag() 34 { 35 return 'import'; 36 } 37 }