Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
100.00% |
1 / 1 |
|
100.00% |
3 / 3 |
CRAP | |
100.00% |
17 / 17 |
| defineparser | |
100.00% |
1 / 1 |
|
100.00% |
3 / 3 |
5 | |
100.00% |
17 / 17 |
| parse | |
100.00% |
1 / 1 |
3 | |
100.00% |
15 / 15 |
|||
| decideBlockEnd | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
| getTag | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
| <?php | |
| /** | |
| * | |
| * This file is part of the phpBB Forum Software package. | |
| * | |
| * @copyright (c) phpBB Limited <https://www.phpbb.com> | |
| * @copyright Portions (c) 2009 Fabien Potencier, Armin Ronacher | |
| * @license GNU General Public License, version 2 (GPL-2.0) | |
| * | |
| * For full copyright and license information, please see | |
| * the docs/CREDITS.txt file. | |
| * | |
| */ | |
| namespace phpbb\template\twig\tokenparser; | |
| class defineparser extends \Twig\TokenParser\AbstractTokenParser | |
| { | |
| /** | |
| * Parses a token and returns a node. | |
| * | |
| * @param \Twig\Token $token A Twig\Token instance | |
| * | |
| * @return \Twig\Node\Node A Twig\Node instance | |
| * @throws \Twig\Error\SyntaxError | |
| * @throws \phpbb\template\twig\node\definenode | |
| */ | |
| public function parse(\Twig\Token $token) | |
| { | |
| $lineno = $token->getLine(); | |
| $stream = $this->parser->getStream(); | |
| $name = $this->parser->getExpressionParser()->parseExpression(); | |
| $capture = false; | |
| if ($stream->test(\Twig\Token::OPERATOR_TYPE, '=')) | |
| { | |
| $stream->next(); | |
| $value = $this->parser->getExpressionParser()->parseExpression(); | |
| if ($value instanceof \Twig\Node\Expression\NameExpression) | |
| { | |
| // This would happen if someone improperly formed their DEFINE syntax | |
| // e.g. <!-- DEFINE $VAR = foo --> | |
| throw new \Twig\Error\SyntaxError('Invalid DEFINE', $token->getLine(), $this->parser->getStream()->getSourceContext()->getPath()); | |
| } | |
| $stream->expect(\Twig\Token::BLOCK_END_TYPE); | |
| } | |
| else | |
| { | |
| $capture = true; | |
| $stream->expect(\Twig\Token::BLOCK_END_TYPE); | |
| $value = $this->parser->subparse(array($this, 'decideBlockEnd'), true); | |
| $stream->expect(\Twig\Token::BLOCK_END_TYPE); | |
| } | |
| return new \phpbb\template\twig\node\definenode($capture, $name, $value, $lineno, $this->getTag()); | |
| } | |
| public function decideBlockEnd(\Twig\Token $token) | |
| { | |
| return $token->test('ENDDEFINE'); | |
| } | |
| /** | |
| * Gets the tag name associated with this token parser. | |
| * | |
| * @return string The tag name | |
| */ | |
| public function getTag() | |
| { | |
| return 'DEFINE'; | |
| } | |
| } |