예제 #1
0
 protected function assertRemainingContent(Reader $reader, $remainingContent)
 {
     if ('' === $remainingContent) {
         $this->assertEquals(0, $reader->getRemainingLength());
         $this->assertTrue($reader->isEOF());
     } else {
         $this->assertEquals(strlen($remainingContent), $reader->getRemainingLength());
         $this->assertEquals(0, $reader->getOffset($remainingContent));
     }
 }
예제 #2
0
 /**
  * Tokenize selector source code.
  *
  * @param Reader $reader
  *
  * @return TokenStream
  */
 public function tokenize(Reader $reader)
 {
     $stream = new TokenStream();
     while (!$reader->isEOF()) {
         foreach ($this->handlers as $handler) {
             if ($handler->handle($reader, $stream)) {
                 continue 2;
             }
         }
         $stream->push(new Token(Token::TYPE_DELIMITER, $reader->getSubstring(1), $reader->getPosition()));
         $reader->moveForward(1);
     }
     return $stream->push(new Token(Token::TYPE_FILE_END, null, $reader->getPosition()))->freeze();
 }
예제 #3
0
 public function testToEnd()
 {
     $reader = new Reader('hello');
     $reader->moveToEnd();
     $this->assertTrue($reader->isEOF());
 }