public function parse(Twig_Token $token)
{
$nodes = array();
$parser = $this->parser;
$stream = $parser->getStream();
if (!$stream->getCurrent()->test(Twig_Token::BLOCK_END_TYPE)) {
$nodes['query'] = $parser->getExpressionParser()->parseExpression();
}
$stream->expect(Twig_Token::BLOCK_END_TYPE);
$nodes['body'] = $parser->subparse(array($this, 'decide_loop_end'), true);
$stream->expect(Twig_Token::BLOCK_END_TYPE);
return new Loop_Node($nodes, array(), $token->getLine(), $this->getTag());
}