code: private function fixPowToExponentiation(Tokens $tokens, $functionNameIndex, $openParenthesisIndex, $closeParenthesisIndex, array $arguments)
      {
          // find the argument separator ',' directly after the last token of the first argument;
          // replace it with T_POW '**'
          $tokens[$tokens->getNextTokenOfKind(reset($arguments), [','])] = new Token([T_POW, '**']);
  
          // clean up the function call tokens prt. I
          $tokens->clearAt($closeParenthesisIndex);
          $previousIndex = $tokens->getPrevMeaningfulToken($closeParenthesisIndex);
          if ($tokens[$previousIndex]->equals(',')) {
              $tokens->clearAt($previousIndex); // trailing ',' in function call (PHP 7.3)
          }
  
          $added = 0;
          // check if the arguments need to be wrapped in parenthesis
          foreach (array_reverse($arguments, true) as $argumentStartIndex => $argumentEndIndex) {
              if ($this->isParenthesisNeeded($tokens, $argumentStartIndex, $argumentEndIndex)) {
                  $tokens->insertAt($argumentEndIndex + 1, new Token(')'));
                  $tokens->insertAt($argumentStartIndex, new Token('('));
                  $added += 2;
              }
          }
  
          // clean up the function call tokens prt. II
          $tokens->clearAt($openParenthesisIndex);
          $tokens->clearAt($functionNameIndex);
  
          $prev = $tokens->getPrevMeaningfulToken($functionNameIndex);
          if ($tokens[$prev]->isGivenKind(T_NS_SEPARATOR)) {
              $tokens->clearAt($prev);
          }
  
          return $added;
      }
docs: @param Tokens         $tokens
  @param int            $functionNameIndex
  @param int            $openParenthesisIndex
  @param int            $closeParenthesisIndex
  @param array<int,int> $arguments
  
  @return int number of tokens added to the collection