/** * @param \Twig_Token $token * * @return \Twig_Node * @throws \Twig_Error_Syntax */ public function parse(\Twig_Token $token) { $stream = $this->parser->getStream(); $form = $stream->expect(\Twig_Token::NAME_TYPE)->getValue(); $stream->expect(\Twig_Token::BLOCK_END_TYPE); if (FormState::$current !== null) { throw new \Twig_Error_Syntax(sprintf('form [%s] not closed while opening form [%s]', FormState::$current, $form), $token->getLine(), $stream->getFilename()); } else { FormState::$current = $form; } return new FormNode($form, $token->getLine(), $this->getTag()); }
/** * @param \Twig_Token $token Token consumed by the lexer. * * @return \Twig_Node * @throws \Twig_Error_Syntax */ public function parse(\Twig_Token $token) { $stream = $this->parser->getStream(); if ($stream->getCurrent()->getType() != \Twig_Token::BLOCK_END_TYPE) { $error = sprintf("'%s' does not require any arguments.", $this->getTag()); throw new \Twig_Error_Syntax($error, $token->getLine(), $this->parser->getFilename()); } $stream->expect(\Twig_Token::BLOCK_END_TYPE); if (FormState::$current === null) { throw new \Twig_Error_Syntax('Trying to close a form tag, while none opened', $token->getLine(), $this->parser->getFilename()); } else { FormState::$current = null; } return new FormEndNode($token->getLine(), $this->getTag()); }