public function getPriorityCases()
 {
     $transformersObject = Transformers::create();
     $transformers = array();
     foreach ($transformersObject->getTransformers() as $transformer) {
         $transformers[$transformer->getName()] = $transformer;
     }
     return array(array($transformers['curly_close'], $transformers['dynamic_prop_brace']), array($transformers['curly_close'], $transformers['dollar_close_curly_braces']));
 }
 public function provideCustomTokenPrefixCases()
 {
     $transformers = Transformers::create();
     $items = AccessibleObject::create($transformers)->items;
     $cases = array();
     foreach ($items as $item) {
         foreach ($item->getCustomTokenNames() as $name) {
             $cases[] = array($name);
         }
     }
     return $cases;
 }
 public function provideCustomTokenPrefixCases()
 {
     $transformers = Transformers::create();
     $transformersReflection = new \ReflectionClass($transformers);
     $propertyReflection = $transformersReflection->getProperty('items');
     $propertyReflection->setAccessible(true);
     $items = $propertyReflection->getValue($transformers);
     $cases = array();
     foreach ($items as $item) {
         foreach ($item->getCustomTokenNames() as $name) {
             $cases[] = array($name);
         }
     }
     return $cases;
 }
示例#4
0
 /**
  * Get token name.
  *
  * @return null|string token name
  */
 public function getName()
 {
     if (!isset($this->id)) {
         return;
     }
     $transformers = Transformers::create();
     if ($transformers->hasCustomToken($this->id)) {
         return $transformers->getCustomToken($this->id);
     }
     return token_name($this->id);
 }
示例#5
0
 /**
  * Set code. Clear all current content and replace it by new Token items generated from code directly.
  *
  * @param string $code PHP 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 = 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 = array();
     foreach ($this as $index => $token) {
         $this->registerFoundToken($token);
     }
     $this->rewind();
     $this->changeCodeHash(self::calculateCodeHash($code));
     $this->changed = true;
 }
示例#6
0
 /**
  * Set code. Clear all current content and replace it by new Token items generated from code directly.
  *
  * @param string $code PHP code
  */
 public function setCode($code)
 {
     // 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->rewind();
     $this->changeCodeHash(crc32($code));
 }
 protected static function getTransformers()
 {
     return Transformers::create();
 }
示例#8
0
文件: Tokens.php 项目: Ryu0621/SaNaVi
 public function setCode($code)
 {
     $this->setSize(0);
     $tokens = 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->rewind();
     $this->changeCodeHash(crc32($code));
 }