parser->getExpressionParser()->parseExpression(); $stream = $this->parser->getStream(); if (!$template instanceof ConstantExpression) { throw new SyntaxError('The template references in a "use" statement must be a string.', $stream->getCurrent()->getLine(), $stream->getSourceContext()); } $targets = []; if ($stream->nextIf('with')) { do { $name = $stream->expect(Token::NAME_TYPE)->getValue(); $alias = $name; if ($stream->nextIf('as')) { $alias = $stream->expect(Token::NAME_TYPE)->getValue(); } $targets[$name] = new ConstantExpression($alias, -1); if (!$stream->nextIf(Token::PUNCTUATION_TYPE, ',')) { break; } } while (true); } $stream->expect(Token::BLOCK_END_TYPE); $this->parser->addTrait(new Node(['template' => $template, 'targets' => new Node($targets)])); return new Node(); } public function getTag() { return 'use'; } } class_alias('Twig\TokenParser\UseTokenParser', 'Twig_TokenParser_Use');