Daniel@0: getLine(); Daniel@0: Daniel@0: $stream = $this->parser->getStream(); Daniel@0: Daniel@0: while (!$stream->test(\Twig_Token::BLOCK_END_TYPE)) { Daniel@0: if ($stream->test(\Twig_Token::NAME_TYPE, 'id')) { Daniel@0: // id='tmpl_id' Daniel@0: $stream->next(); Daniel@0: $stream->expect(\Twig_Token::OPERATOR_TYPE, '='); Daniel@0: $id = $stream->expect(\Twig_Token::STRING_TYPE)->getValue(); Daniel@0: } else { Daniel@0: $token = $stream->getCurrent(); Daniel@0: throw new \Twig_Error_Syntax(sprintf('Unexpected token "%s" of value "%s"', \Twig_Token::typeToEnglish($token->getType(), $token->getLine()), $token->getValue()), $token->getLine()); Daniel@0: } Daniel@0: } Daniel@0: Daniel@0: $stream->expect(\Twig_Token::BLOCK_END_TYPE); Daniel@0: Daniel@0: $endtag = 'end'.$this->getTag(); Daniel@0: $test = function(\Twig_Token $token) use($endtag) { Daniel@0: return $token->test($endtag); Daniel@0: }; Daniel@0: $body = $this->parser->subparse($test, true); Daniel@0: Daniel@0: $stream->expect(\Twig_Token::BLOCK_END_TYPE); Daniel@0: Daniel@0: return new JstmplNode($id, $body, $lineno, $this->getTag()); Daniel@0: } Daniel@0: Daniel@0: public function getTag() Daniel@0: { Daniel@0: return 'jstmpl'; Daniel@0: } Daniel@0: }