Exemple #1
0
 public function testSuccess()
 {
     $lexer = new Lexer('foo and');
     $this->assertEquals('foo', $lexer->match(Tokens::T_IDENTIFIER));
     $this->assertEquals('and', $lexer->match(Tokens::T_AND));
     $this->assertTrue($lexer->isEol());
     $lexer->reset();
     $this->assertTrue($lexer->isNextToken(Tokens::T_IDENTIFIER));
     $lexer->match(Tokens::T_IDENTIFIER);
     $this->assertEquals(' ', $lexer->match(Tokens::T_WHITESPACE, false));
 }
Exemple #2
0
 protected function parseFieldIdentifier(Lexer $lexer)
 {
     $domain = array();
     while ($lexer->isNextToken(Tokens::T_IDENTIFIER)) {
         $domain[] = $lexer->match(Tokens::T_IDENTIFIER);
         if ($lexer->isNextToken(Tokens::T_HIERARCHY_SEPARATOR)) {
             $lexer->match(Tokens::T_HIERARCHY_SEPARATOR);
         }
     }
     return new Expr\FieldIdentifier(implode('.', $domain));
 }