Dotclear

source: inc/libs/Twig/TokenParser/Extends.php @ 1149:1657e862089c

Revision 1149:1657e862089c, 1.3 KB checked in by dsls, 12 years ago (diff)

Fixed unix case-sensitive twig directory

Line 
1<?php
2
3/*
4 * This file is part of Twig.
5 *
6 * (c) 2009 Fabien Potencier
7 * (c) 2009 Armin Ronacher
8 *
9 * For the full copyright and license information, please view the LICENSE
10 * file that was distributed with this source code.
11 */
12
13/**
14 * Extends a template by another one.
15 *
16 * <pre>
17 *  {% extends "base.html" %}
18 * </pre>
19 */
20class Twig_TokenParser_Extends extends Twig_TokenParser
21{
22    /**
23     * Parses a token and returns a node.
24     *
25     * @param Twig_Token $token A Twig_Token instance
26     *
27     * @return Twig_NodeInterface A Twig_NodeInterface instance
28     */
29    public function parse(Twig_Token $token)
30    {
31        if (!$this->parser->isMainScope()) {
32            throw new Twig_Error_Syntax('Cannot extend from a block', $token->getLine(), $this->parser->getFilename());
33        }
34
35        if (null !== $this->parser->getParent()) {
36            throw new Twig_Error_Syntax('Multiple extends tags are forbidden', $token->getLine(), $this->parser->getFilename());
37        }
38        $this->parser->setParent($this->parser->getExpressionParser()->parseExpression());
39
40        $this->parser->getStream()->expect(Twig_Token::BLOCK_END_TYPE);
41
42        return null;
43    }
44
45    /**
46     * Gets the tag name associated with this token parser.
47     *
48     * @return string The tag name
49     */
50    public function getTag()
51    {
52        return 'extends';
53    }
54}
Note: See TracBrowser for help on using the repository browser.

Sites map