private function findElementEnd(Tokens $tokens, $index)
    {
        $index = $tokens->getNextTokenOfKind($index, ['{', ';']);

        if ($tokens[$index]->equals('{')) {
            $index = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_CURLY_BRACE, $index);
        }

        for (++$index; $tokens[$index]->isWhitespace(" \t") || $tokens[$index]->isComment(); ++$index);

        --$index;

        return $tokens[$index]->isWhitespace() ? $index - 1 : $index;
    }
private function findElementEnd(Tokens $tokens, $index)
    {
        $index = $tokens->getNextTokenOfKind($index, ['{', ';']);

        if ($tokens[$index]->equals('{')) {
            $index = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_CURLY_BRACE, $index);
        }

        for (++$index; $tokens[$index]->isWhitespace(" \t") || $tokens[$index]->isComment(); ++$index);

        --$index;

        return $tokens[$index]->isWhitespace() ? $index - 1 : $index;
    }
private function findElementEnd ( Tokens $ tokens , $ index ) { $ index = $ tokens -> getNextTokenOfKind ( $ index , [ '{' , ';' ] ) ; if ( $ tokens [ $ index ] -> equals ( '{' ) ) { $ index = $ tokens -> findBlockEnd ( Tokens :: BLOCK_TYPE_CURLY_BRACE , $ index ) ; } for ( ++ $ index ; $ tokens [ $ index ] -> isWhitespace ( " \t" ) || $ tokens [ $ index ] -> isComment ( ) ; ++ $ index ) ; -- $ index ; return $ tokens [ $ index ] -> isWhitespace ( ) ? $ index - 1 : $ index ; }
@param Tokens $tokens
@param int    $index

@return int
@param Tokens $tokens @param int $index