unscan() public method

Set the scan pointer to the previous position. Only one previous position is remembered, and it changes with each scanning operation.
public unscan ( )
Esempio n. 1
0
 public function testUnscan()
 {
     $s = new StringScanner('test string');
     $this->assertEquals('test', $s->scan('/\\w+/'));
     $s->unscan();
     $this->assertEquals('te', $s->scan('/../'));
     $this->assertNull($s->scan('/\\d/'));
     try {
         $s->unscan();
         # ScanError: unscan failed: previous match record not exist
     } catch (Exception $e) {
     }
     $this->assertNotNull($e);
     $s->reset();
     $this->assertEquals('test ', $s->scan('/\\w+\\s/'));
     $this->assertEquals('st', $s->scan('/st/'));
     $this->assertEquals('ri', $s->scan('/ri/'));
     $s->unscan();
     $this->assertEquals(7, $s->pos);
     $this->assertEquals('ri', $s->scan('/ri/'));
 }