Line 14 | Line 14 |
---|
namespace phpbb\template\twig\tokenparser;
|
namespace phpbb\template\twig\tokenparser;
|
class defineparser extends \Twig_TokenParser
| class defineparser extends \Twig\TokenParser\AbstractTokenParser
|
{ /** * Parses a token and returns a node. *
|
{ /** * Parses a token and returns a node. *
|
* @param \Twig_Token $token A Twig_Token instance
| * @param \Twig\Token $token A Twig\Token instance
|
*
|
*
|
* @return \Twig_Node A Twig_Node instance * @throws \Twig_Error_Syntax
| * @return \Twig\Node\Node A Twig\Node instance * @throws \Twig\Error\SyntaxError
|
* @throws \phpbb\template\twig\node\definenode */
|
* @throws \phpbb\template\twig\node\definenode */
|
public function parse(\Twig_Token $token)
| public function parse(\Twig\Token $token)
|
{ $lineno = $token->getLine(); $stream = $this->parser->getStream(); $name = $this->parser->getExpressionParser()->parseExpression();
$capture = false;
|
{ $lineno = $token->getLine(); $stream = $this->parser->getStream(); $name = $this->parser->getExpressionParser()->parseExpression();
$capture = false;
|
if ($stream->test(\Twig_Token::OPERATOR_TYPE, '='))
| if ($stream->test(\Twig\Token::OPERATOR_TYPE, '='))
|
{ $stream->next(); $value = $this->parser->getExpressionParser()->parseExpression();
|
{ $stream->next(); $value = $this->parser->getExpressionParser()->parseExpression();
|
if ($value instanceof \Twig_Node_Expression_Name)
| if ($value instanceof \Twig\Node\Expression\NameExpression)
|
{ // This would happen if someone improperly formed their DEFINE syntax // e.g. <!-- DEFINE $VAR = foo -->
|
{ // This would happen if someone improperly formed their DEFINE syntax // e.g. <!-- DEFINE $VAR = foo -->
|
throw new \Twig_Error_Syntax('Invalid DEFINE', $token->getLine(), $this->parser->getStream()->getSourceContext()->getPath());
| throw new \Twig\Error\SyntaxError('Invalid DEFINE', $token->getLine(), $this->parser->getStream()->getSourceContext()->getPath());
|
}
|
}
|
$stream->expect(\Twig_Token::BLOCK_END_TYPE);
| $stream->expect(\Twig\Token::BLOCK_END_TYPE);
|
} else { $capture = true;
|
} else { $capture = true;
|
$stream->expect(\Twig_Token::BLOCK_END_TYPE);
| $stream->expect(\Twig\Token::BLOCK_END_TYPE);
|
$value = $this->parser->subparse(array($this, 'decideBlockEnd'), true);
|
$value = $this->parser->subparse(array($this, 'decideBlockEnd'), true);
|
$stream->expect(\Twig_Token::BLOCK_END_TYPE);
| $stream->expect(\Twig\Token::BLOCK_END_TYPE);
|
}
return new \phpbb\template\twig\node\definenode($capture, $name, $value, $lineno, $this->getTag()); }
|
}
return new \phpbb\template\twig\node\definenode($capture, $name, $value, $lineno, $this->getTag()); }
|
public function decideBlockEnd(\Twig_Token $token)
| public function decideBlockEnd(\Twig\Token $token)
|
{ return $token->test('ENDDEFINE'); }
| { return $token->test('ENDDEFINE'); }
|