Exemplo n.º 1
0
 /**
  * Convert php code to array of tokens
  *
  * @param string $code
  * @return Token[]
  * @throws Exception
  */
 public static function getTokensFromString($code)
 {
     $tokens = token_get_all($code);
     foreach ($tokens as $index => $tokenData) {
         if (!is_array($tokenData)) {
             $previousIndex = $index - 1;
             /** @var Token $previousToken */
             $previousToken = $tokens[$previousIndex];
             $line = $previousToken->getLine() + substr_count($previousToken->getValue(), "\n");
             $tokenData = [Token::INVALID_TYPE, $tokenData, $line];
         }
         $token = new Token($tokenData);
         $token->setIndex($index);
         $tokens[$index] = $token;
     }
     return $tokens;
 }