code: 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;
      }
docs: @param Tokens $tokens
  @param int    $index
  
  @return int