code: private function isInConditionWithoutBraces(Tokens $tokens, $index, $lowerLimitIndex)
      {
          do {
              if ($tokens[$index]->isComment() || $tokens[$index]->isWhitespace()) {
                  $index = $tokens->getPrevMeaningfulToken($index);
              }
  
              $token = $tokens[$index];
              if ($token->isGivenKind([T_IF, T_ELSEIF, T_ELSE])) {
                  return true;
              }
  
              if ($token->equals(';', '}')) {
                  return false;
              }
              if ($token->equals('{')) {
                  $index = $tokens->getPrevMeaningfulToken($index);
  
                  // OK if belongs to: for, do, while, foreach
                  // Not OK if belongs to: if, else, elseif
                  if ($tokens[$index]->isGivenKind(T_DO)) {
                      --$index;
  
                      continue;
                  }
  
                  if (!$tokens[$index]->equals(')')) {
                      return false; // like `else {`
                  }
  
                  $index = $tokens->findBlockStart(
                      Tokens::BLOCK_TYPE_PARENTHESIS_BRACE,
                      $index
                  );
  
                  $index = $tokens->getPrevMeaningfulToken($index);
                  if ($tokens[$index]->isGivenKind([T_IF, T_ELSEIF])) {
                      return false;
                  }
              } elseif ($token->equals(')')) {
                  $type = Tokens::detectBlockType($token);
                  $index = $tokens->findBlockStart(
                      $type['type'],
                      $index
                  );
  
                  $index = $tokens->getPrevMeaningfulToken($index);
              } else {
                  --$index;
              }
          } while ($index > $lowerLimitIndex);
  
          return false;
      }
docs: For internal use only, as it is not perfect.
  
  Returns if the token at given index is part of a if/elseif/else statement
  without {}. Assumes not passing the last `;`/close tag of the statement, not
  out of range index, etc.
  
  @param Tokens $tokens
  @param int    $index           Index of the token to check
  @param int    $lowerLimitIndex
  
  @return bool