Exemplo n.º 1
0
 function testUnscan()
 {
     $sc = new StringScanner("foobar blorg bla");
     $res = $sc->scan("foo(bar) (\\w+)");
     $this->assertEqual($res, "foobar blorg");
     $this->assertEqual($sc[0], "foobar blorg");
     $this->assertEqual($sc[1], "bar");
     $this->assertEqual($sc[2], "blorg");
     $this->assertEqual($sc->rest(), " bla");
     $this->assertEqual($sc->wasMatched(), true);
     $sc->unScan();
     $this->assertEqual($sc->pos, 0);
     $this->assertEqual($sc[0], null);
     try {
         $sc->unScan();
         $this->assertFalse(true);
     } catch (Exception $e) {
         $this->assertEqual($e->getMessage(), "unScan failed, previous match had failed");
     }
     $res = $sc->isMatch("foo");
     $this->assertEqual($sc[0], "foo");
     $res = $sc->isMatch("foobar");
     $this->assertEqual($sc[0], "foobar");
     $sc->unScan();
     $this->assertEqual($sc[0], "foo");
     $res = $sc->scan("foobar ");
     $this->assertEqual($sc->rest(), "blorg bla");
     $sc->unScan();
     $this->assertEqual($sc->rest(), "foobar blorg bla");
 }