Loop_Token_Parser::decide_loop_end()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 2
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 1
dl 0
loc 2
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace Rarst\Meadow;
4
5
use Twig_Token;
6
7
class Loop_Token_Parser extends \Twig_TokenParser {
8
9
	/**
10
	 * Parses a token and returns a node.
11
	 *
12
	 * @param Twig_Token $token
13
	 *
14
	 * @return Loop_Node
15
	 */
16
	public function parse( Twig_Token $token ) {
17
18
		$nodes  = array();
19
		$parser = $this->parser;
20
		$stream = $parser->getStream();
21
22
		if ( ! $stream->getCurrent()->test( Twig_Token::BLOCK_END_TYPE ) ) {
23
			$nodes['query'] = $parser->getExpressionParser()->parseExpression();
24
		}
25
26
		$stream->expect( Twig_Token::BLOCK_END_TYPE );
27
		$nodes['body'] = $parser->subparse( array( $this, 'decide_loop_end' ), true );
28
		$stream->expect( Twig_Token::BLOCK_END_TYPE );
29
30
		return new Loop_Node( $nodes, array(), $token->getLine(), $this->getTag() );
31
	}
32
33
	/**
34
	 * @return string
35
	 */
36
	public function getTag() {
37
38
		return 'loop';
39
	}
40
41
	/**
42
	 * @param Twig_Token $token
43
	 *
44
	 * @return bool
45
	 */
46
	public function decide_loop_end( Twig_Token $token ) {
47
		return $token->test( 'endloop' );
48
	}
49
}