aboutsummaryrefslogtreecommitdiffhomepage
path: root/inc/Twig/Extensions/Grammar/Body.php
diff options
context:
space:
mode:
Diffstat (limited to 'inc/Twig/Extensions/Grammar/Body.php')
-rw-r--r--inc/Twig/Extensions/Grammar/Body.php39
1 files changed, 39 insertions, 0 deletions
diff --git a/inc/Twig/Extensions/Grammar/Body.php b/inc/Twig/Extensions/Grammar/Body.php
new file mode 100644
index 00000000..540cfc75
--- /dev/null
+++ b/inc/Twig/Extensions/Grammar/Body.php
@@ -0,0 +1,39 @@
1<?php
2
3/*
4 * This file is part of Twig.
5 *
6 * (c) 2010 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 */
11class Twig_Extensions_Grammar_Body extends Twig_Extensions_Grammar
12{
13 protected $end;
14
15 public function __construct($name, $end = null)
16 {
17 parent::__construct($name);
18
19 $this->end = null === $end ? 'end'.$name : $end;
20 }
21
22 public function __toString()
23 {
24 return sprintf('<%s:body>', $this->name);
25 }
26
27 public function parse(Twig_Token $token)
28 {
29 $stream = $this->parser->getStream();
30 $stream->expect(Twig_Token::BLOCK_END_TYPE);
31
32 return $this->parser->subparse(array($this, 'decideBlockEnd'), true);
33 }
34
35 public function decideBlockEnd(Twig_Token $token)
36 {
37 return $token->test($this->end);
38 }
39}