PEEL Shopping
Open source ecommerce : PEEL Shopping
Macro.php
Go to the documentation of this file.
1 <?php
2 
3 /*
4  * This file is part of Twig.
5  *
6  * (c) 2009 Fabien Potencier
7  *
8  * For the full copyright and license information, please view the LICENSE
9  * file that was distributed with this source code.
10  */
11 
22 {
30  public function parse(Twig_Token $token)
31  {
32  $lineno = $token->getLine();
33  $stream = $this->parser->getStream();
34  $name = $stream->expect(Twig_Token::NAME_TYPE)->getValue();
35 
36  $arguments = $this->parser->getExpressionParser()->parseArguments(true, true);
37 
38  $stream->expect(Twig_Token::BLOCK_END_TYPE);
39  $this->parser->pushLocalScope();
40  $body = $this->parser->subparse(array($this, 'decideBlockEnd'), true);
41  if ($stream->test(Twig_Token::NAME_TYPE)) {
42  $value = $stream->next()->getValue();
43 
44  if ($value != $name) {
45  throw new Twig_Error_Syntax(sprintf("Expected endmacro for macro '$name' (but %s given)", $value), $stream->getCurrent()->getLine(), $stream->getFilename());
46  }
47  }
48  $this->parser->popLocalScope();
49  $stream->expect(Twig_Token::BLOCK_END_TYPE);
50 
51  $this->parser->setMacro($name, new Twig_Node_Macro($name, new Twig_Node_Body(array($body)), $arguments, $lineno, $this->getTag()));
52  }
53 
54  public function decideBlockEnd(Twig_Token $token)
55  {
56  return $token->test('endmacro');
57  }
58 
64  public function getTag()
65  {
66  return 'macro';
67  }
68 }
decideBlockEnd(Twig_Token $token)
Definition: Macro.php:54
Base class for all token parsers.
Definition: TokenParser.php:17
Represents a body node.
Definition: Body.php:17
Defines a macro.
Definition: Macro.php:21
Exception thrown when a syntax error occurs during lexing or parsing of a template.
Definition: Syntax.php:18
Represents a macro node.
Definition: Macro.php:17
const BLOCK_END_TYPE
Definition: Token.php:28
Represents a Token.
Definition: Token.php:18
const NAME_TYPE
Definition: Token.php:30
getLine()
Gets the line.
Definition: Token.php:94
test($type, $values=null)
Tests the current token for a type and/or a value.
Definition: Token.php:75
getTag()
Gets the tag name associated with this token parser.
Definition: Macro.php:64
parse(Twig_Token $token)
Parses a token and returns a node.
Definition: Macro.php:30

This documentation for Open ecommerce PEEL Shopping and PEEL.fr has been generated by Doxygen on Thu Oct 15 2015 14:41:19 - Peel ecommerce is a product of Agence web Advisto SAS. All rights reserved.