*/
class Twig_Node_For extends Twig_Node
{
- public function __construct(Twig_Node_Expression_AssignName $keyTarget, Twig_Node_Expression_AssignName $valueTarget, Twig_Node_Expression $seq, Twig_NodeInterface $body, Twig_NodeInterface $else = null, $withLoop = false, Twig_Node_Expression $joinedBy = null, $lineno, $tag = null)
+ public function __construct(Twig_Node_Expression_AssignName $keyTarget, Twig_Node_Expression_AssignName $valueTarget, Twig_Node_Expression $seq, Twig_NodeInterface $body, Twig_NodeInterface $else = null, Twig_Node_Expression $joinedBy = null, $lineno, $tag = null)
{
- parent::__construct(array('key_target' => $keyTarget, 'value_target' => $valueTarget, 'seq' => $seq, 'body' => $body, 'else' => $else, 'joined_with' => $joinedBy), array('with_loop' => $withLoop), $lineno, $tag);
+ parent::__construct(array('key_target' => $keyTarget, 'value_target' => $valueTarget, 'seq' => $seq, 'body' => $body, 'else' => $else, 'joined_with' => $joinedBy), array('with_loop' => true), $lineno, $tag);
}
/**
$this->parser->getStream()->expect(Twig_Token::OPERATOR_TYPE, 'in');
$seq = $this->parser->getExpressionParser()->parseExpression();
- $withLoop = true;
- if ($this->parser->getStream()->test('without')) {
- $this->parser->getStream()->next();
- $this->parser->getStream()->expect('loop');
- $withLoop = false;
- }
-
$joinedBy = null;
if ($this->parser->getStream()->test('joined')) {
$this->parser->getStream()->next();
$valueTarget = $targets->getNode(0);
}
- return new Twig_Node_For($keyTarget, $valueTarget, $seq, $body, $else, $withLoop, $joinedBy, $lineno, $this->getTag());
+ return new Twig_Node_For($keyTarget, $valueTarget, $seq, $body, $else, $joinedBy, $lineno, $this->getTag());
}
public function decideForFork($token)
$seq = new Twig_Node_Expression_Name('items', 0);
$body = new Twig_Node_Print(new Twig_Node_Expression_Name('foo', 0), 0);
$else = null;
- $withLoop = false;
- $node = new Twig_Node_For($keyTarget, $valueTarget, $seq, $body, $else, $withLoop, null, 0);
+ $node = new Twig_Node_For($keyTarget, $valueTarget, $seq, $body, $else, null, 0);
+ $node->setAttribute('with_loop', false);
$this->assertEquals($keyTarget, $node->getNode('key_target'));
$this->assertEquals($valueTarget, $node->getNode('value_target'));
$this->assertEquals($body, $node->getNode('body'));
$this->assertEquals(null, $node->getNode('else'));
- $this->assertEquals($withLoop, $node->getAttribute('with_loop'));
-
$else = new Twig_Node_Print(new Twig_Node_Expression_Name('foo', 0), 0);
- $node = new Twig_Node_For($keyTarget, $valueTarget, $seq, $body, $else, $withLoop, null, 0);
+ $node = new Twig_Node_For($keyTarget, $valueTarget, $seq, $body, $else, null, 0);
+ $node->setAttribute('with_loop', false);
$this->assertEquals($else, $node->getNode('else'));
}
$seq = new Twig_Node_Expression_Name('items', 0);
$body = new Twig_Node_Print(new Twig_Node_Expression_Name('foo', 0), 0);
$else = null;
- $withLoop = false;
- $node = new Twig_Node_For($keyTarget, $valueTarget, $seq, $body, $else, $withLoop, null, 0);
+ $node = new Twig_Node_For($keyTarget, $valueTarget, $seq, $body, $else, null, 0);
+ $node->setAttribute('with_loop', false);
$tests[] = array($node, <<<EOF
\$context['_parent'] = (array) \$context;
$seq = new Twig_Node_Expression_Name('values', 0);
$body = new Twig_Node_Print(new Twig_Node_Expression_Name('foo', 0), 0);
$else = null;
- $withLoop = true;
$joinedBy = new Twig_Node_Expression_Constant(', ', 0);
- $node = new Twig_Node_For($keyTarget, $valueTarget, $seq, $body, $else, $withLoop, $joinedBy, 0);
+ $node = new Twig_Node_For($keyTarget, $valueTarget, $seq, $body, $else, $joinedBy, 0);
+ $node->setAttribute('with_loop', true);
$tests[] = array($node, <<<EOF
\$context['_parent'] = (array) \$context;
$seq = new Twig_Node_Expression_Name('values', 0);
$body = new Twig_Node_Print(new Twig_Node_Expression_Name('foo', 0), 0);
$else = new Twig_Node_Print(new Twig_Node_Expression_Name('foo', 0), 0);
- $withLoop = true;
- $node = new Twig_Node_For($keyTarget, $valueTarget, $seq, $body, $else, $withLoop, null, 0);
+ $node = new Twig_Node_For($keyTarget, $valueTarget, $seq, $body, $else, null, 0);
+ $node->setAttribute('with_loop', true);
$tests[] = array($node, <<<EOF
\$context['_parent'] = (array) \$context;