コード例 #1
0
ファイル: ScannerHelperTest.php プロジェクト: bgarrels/ebnf
 public function testIsAlphaNum()
 {
     foreach ($this->nums as $c) {
         $this->assertTrue(ScannerHelper::isAlphaNum($c), $c);
     }
     foreach ($this->lowAlpha as $c) {
         $this->assertTrue(ScannerHelper::isAlphaNum($c), $c);
     }
     foreach ($this->upAlpha as $c) {
         $this->assertTrue(ScannerHelper::isAlphaNum($c), $c);
     }
     foreach ($this->ops as $c) {
         $this->assertFalse(ScannerHelper::isAlphaNum($c), $c);
     }
     foreach ($this->ws as $c) {
         $this->assertFalse(ScannerHelper::isAlphaNum($c), $c);
     }
 }
コード例 #2
0
ファイル: Scanner.php プロジェクト: bgarrels/ebnf
 /**
  * Scans an identifier [a-zA-Z\-_].
  *
  * @return Token
  */
 private function scannIdentifier()
 {
     $pos = $this->createPosition();
     $str = $this->currentCharacter();
     while ($this->hasNextCharacter()) {
         $this->nextCharacter();
         if (ScannerHelper::isAlphaNum($this->currentCharacter()) || ScannerHelper::isEquals($this->currentCharacter(), array("-", "_"))) {
             $str .= $this->currentCharacter();
         } else {
             $this->backupCharacter();
             break;
         }
     }
     return new Token(Token::IDENTIFIER, $str, $pos);
 }