code: public function setCode($code)
      {
          // No need to work when the code is the same.
          // That is how we avoid a lot of work and setting changed flag.
          if ($code === $this->generateCode()) {
              return;
          }
  
          // clear memory
          $this->setSize(0);
  
          $tokens = \defined('TOKEN_PARSE')
              ? token_get_all($code, TOKEN_PARSE)
              : token_get_all($code);
  
          $this->setSize(\count($tokens));
  
          foreach ($tokens as $index => $token) {
              $this[$index] = new Token($token);
          }
  
          $transformers = Transformers::create();
          $transformers->transform($this);
  
          $this->foundTokenKinds = [];
          foreach ($this as $token) {
              $this->registerFoundToken($token);
          }
  
          $this->rewind();
          $this->changeCodeHash(self::calculateCodeHash($code));
          $this->changed = true;
      }
docs: Set code. Clear all current content and replace it by new Token items generated from code directly.
  
  @param string $code PHP code