-
Notifications
You must be signed in to change notification settings - Fork 610
/
DumpTokenParser.php
49 lines (41 loc) · 1.01 KB
/
DumpTokenParser.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php
/**
* @link https://craftcms.com/
* @copyright Copyright (c) Pixel & Tonic, Inc.
* @license https://craftcms.github.io/license/
*/
namespace craft\web\twig\tokenparsers;
use craft\web\twig\nodes\DumpNode;
use Twig\Token;
use Twig\TokenParser\AbstractTokenParser;
/**
* Class DumpTokenParser
*
* @author Pixel & Tonic, Inc. <support@pixelandtonic.com>
* @since 4.4.0
*/
class DumpTokenParser extends AbstractTokenParser
{
/**
* @inheritdoc
*/
public function parse(Token $token): DumpNode
{
$lineno = $token->getLine();
$parser = $this->parser;
$stream = $parser->getStream();
$nodes = [];
if (!$stream->test(Token::BLOCK_END_TYPE)) {
$nodes['var'] = $parser->getExpressionParser()->parseExpression();
}
$stream->expect(Token::BLOCK_END_TYPE);
return new DumpNode($nodes, [], $lineno, $this->getTag());
}
/**
* @inheritdoc
*/
public function getTag(): string
{
return 'dump';
}
}