Пример #1
0
 /**
  *
  * @param mixed $var
  * @param integer $deep
  * @param VarParser $parser
  * @return TokenStream
  */
 public function tokenize($var, $deep, VarParser $parser)
 {
     $builder = new TokenStreamBuilder();
     switch (gettype($var)) {
         case 'object':
             if ($deep >= 0) {
                 $builder->addKeyword(get_class($var))->addWhitespece()->addBrace('{}');
             } else {
                 $reflect = new \ReflectionClass($var);
                 $builder->addKeyword($reflect->getShortName())->addWhitespece()->addBrace('{}');
             }
             break;
         case 'array':
             $builder->addType('array')->addBrace('(')->addNumber(count($var))->addBrace(')')->addWhitespece()->addBrace('{');
             if (count($var)) {
                 $builder->addKeyword('…');
             }
             $builder->addBrace('{}');
             break;
         case 'NULL':
             $builder->addKeyword('null');
             break;
         case 'boolean':
             $builder->addKeyword($var ? 'true' : 'false');
             break;
         case 'integer':
         case 'double':
             $builder->addNumber($var);
             break;
         case 'string':
             $builder->addString('"' . $var . '"');
             break;
     }
     return $builder->getStream();
 }
Пример #2
0
 /**
  *
  * @param mixed $var
  * @param integer $deep
  * @param VarParser $parser
  * @return TokenStream
  */
 public function tokenize($var, $deep, VarParser $parser)
 {
     $builder = new TokenStreamBuilder();
     $count = count($var);
     $builder->addType('array')->addBrace('(')->addNumber($count)->addBrace(')');
     //        if ($deep < 0) {
     //            return $builder->getStream();
     //        }
     if (!$count or $deep < 0) {
         $builder->addWhitespece()->addBrace('{');
         if ($count) {
             $builder->addKeyword('…');
         }
         $builder->addBrace('}');
         return $builder->getStream();
     }
     $this->tokenizeItems($builder, $var, $deep, $parser);
     return $builder->getStream();
 }