1 | <?php |
||
24 | class ThumbnailTokenParser extends AbstractTokenParser |
||
25 | { |
||
26 | /** |
||
27 | * @var string |
||
28 | */ |
||
29 | protected $extensionName; |
||
30 | |||
31 | /** |
||
32 | * @param string $extensionName |
||
33 | */ |
||
34 | public function __construct($extensionName) |
||
35 | { |
||
36 | $this->extensionName = $extensionName; |
||
37 | } |
||
38 | |||
39 | public function parse(Token $token) |
||
40 | { |
||
41 | $media = $this->parser->getExpressionParser()->parseExpression(); |
||
42 | |||
43 | $this->parser->getStream()->next(); |
||
44 | |||
45 | $format = $this->parser->getExpressionParser()->parseExpression(); |
||
46 | |||
47 | // attributes |
||
48 | if ($this->parser->getStream()->test(Token::NAME_TYPE, 'with')) { |
||
49 | $this->parser->getStream()->next(); |
||
50 | |||
51 | $attributes = $this->parser->getExpressionParser()->parseExpression(); |
||
52 | } else { |
||
53 | $attributes = new ArrayExpression([], $token->getLine()); |
||
54 | } |
||
55 | |||
56 | $this->parser->getStream()->expect(Token::BLOCK_END_TYPE); |
||
57 | |||
58 | return new ThumbnailNode($this->extensionName, $media, $format, $attributes, $token->getLine(), $this->getTag()); |
||
59 | } |
||
60 | |||
61 | public function getTag() |
||
65 | } |
||
66 |