/** * 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; }
/** * 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; }
/** * @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()); }
/** * @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; }