/**
  * Finds tokens
  *
  * @param \PHP\Manipulator\Token $token
  * @param \PHP\Manipulator\TokenContainer $container
  * @param mixed $params
  * @return \PHP\Manipulator\TokenFinder\Result
  */
 public function find(Token $token, TokenContainer $container, $params = null)
 {
     if (!$this->isType($token, T_FUNCTION)) {
         throw new \Exception('Starttoken is not T_FUNCTION');
     }
     $iterator = $container->getIterator();
     $iterator->seekToToken($token);
     if ($this->_includeMethodProperties($params) && !$this->_includePhpDoc($params)) {
         $this->_seekToMethodProperties($iterator);
     }
     if ($this->_includePhpDoc($params)) {
         $this->_seekToPhpdoc($iterator, $params);
     }
     $this->_inside = false;
     $this->_level = 0;
     $this->_end = false;
     $result = new Result();
     while ($iterator->valid() && false === $this->_end) {
         $result->addToken($iterator->current());
         $this->_checkLevel($iterator);
         $this->_checkBreak($iterator);
         $iterator->next();
     }
     return $result;
 }
 /**
  * Finds tokens
  *
  * @param \PHP\Manipulator\Token $token
  * @param \PHP\Manipulator\TokenContainer $container
  * @param mixed $params
  * @return \PHP\Manipulator\TokenFinder\Result
  */
 public function find(Token $token, TokenContainer $container, $params = null)
 {
     if (!$this->isType($token, T_SWITCH)) {
         throw new \Exception('Starttoken is not T_SWITCH');
     }
     $result = new Result();
     $iterator = $container->getIterator();
     $iterator->seekToToken($token);
     $level = 0;
     $inside = false;
     while ($iterator->valid()) {
         $token = $iterator->current();
         if ($this->isOpeningCurlyBrace($token)) {
             if (0 === $level) {
                 $inside = true;
             }
             $level++;
         }
         if ($this->isClosingCurlyBrace($token)) {
             $level--;
         }
         $result->addToken($token);
         if ($inside && 0 === $level) {
             break;
         }
         $iterator->next();
     }
     return $result;
 }
Beispiel #3
0
 /**
  * Get Result From Container
  *
  * @param \PHP\Manipulator\TokenContainer $container
  * @param integer $start
  * @param integer $end
  * @return \PHP\Manipulator\TokenFinder\Result
  */
 public function getResultFromContainer($container, $start, $end)
 {
     $result = new Result();
     for ($index = $start; $index <= $end; $index++) {
         $result->addToken($container[$index]);
     }
     return $result;
 }
 /**
  * Finds tokens
  *
  * @param \PHP\Manipulator\Token $token
  * @param \PHP\Manipulator\TokenContainer $container
  * @param mixed $params
  * @return \PHP\Manipulator\TokenFinder\Result
  */
 public function find(Token $token, TokenContainer $container, $params = null)
 {
     $allowedTokens = array(T_INCLUDE, T_INCLUDE_ONCE, T_REQUIRE, T_REQUIRE_ONCE);
     if (!$this->isType($token, $allowedTokens)) {
         $message = 'Start-token is not one of T_INCLUDE, T_INCLUDE_ONCE, T_REQUIRE, T_REQUIRE_ONCE';
         throw new \Exception($message);
     }
     $result = new Result();
     $iterator = $container->getIterator();
     $iterator->seekToToken($token);
     while ($iterator->valid()) {
         $token = $iterator->current();
         $result->addToken($token);
         if ($this->isSemicolon($token)) {
             break;
         }
         $iterator->next();
     }
     return $result;
 }
Beispiel #5
0
 /**
  * @covers \PHP\Manipulator\TokenFinder\Result::isEmpty
  */
 public function testIsEmpty()
 {
     $result = new Result();
     $this->assertTrue($result->isEmpty());
     $result->addToken(new Token('foo'));
     $this->assertFalse($result->isEmpty());
 }
Beispiel #6
0
 /**
  * @param array $tokens
  * @return \PHP\Manipulator\TokenFinder\Result
  */
 public static function factory(array $tokens = array())
 {
     $result = new Result();
     foreach ($tokens as $token) {
         $result->addToken($token);
     }
     return $result;
 }