protected function doScan(Scanner $scanner)
 {
     $quotechar = $scanner->tokenType();
     $ret = false;
     $string = "";
     while ($token = $scanner->nextToken()) {
         if ($token == $quotechar) {
             $ret = true;
             break;
         }
         $string .= $scanner->token();
     }
     if ($string && !$this->discard) {
         $scanner->getContext()->pushResult($string);
     }
     return $ret;
 }
Exemple #2
0
 function trigger(Scanner $scanner)
 {
     if ($scanner->tokenType() != Scanner::WORD) {
         return false;
     }
     if (is_null($this->word)) {
         return true;
     }
     return $this->word == $scanner->token();
 }
Exemple #3
0
 protected function push(Scanner $scanner)
 {
     $context = $scanner->getContext();
     $context->pushResult($scanner->token());
 }
Exemple #4
0
        }
        $char = substr($this->in, $this->pos, 1);
        $this->pos++;
        return $char;
    }
    public function getPos()
    {
        return $this->pos;
    }
    public function pushBackChar()
    {
        $this->pos--;
    }
    public function string()
    {
        return $this->in;
    }
}
/**
 * Demo
 */
$context = new Context();
$user_in = "\$input equals '4' or \$input equals 'four'";
$reader = new StringReader($user_in);
$scanner = new Scanner($reader, $context);
while ($scanner->nextToken() != Scanner::EOF) {
    //    var_dump($scanner->token(), $scanner->char_no(), $scanner->getTypeString());
    print $scanner->token();
    print "\t{$scanner->char_no()}";
    print "\t{$scanner->getTypeString()}\n";
}
 function trigger(Scanner $scanner)
 {
     return $scanner->token() == $this->char;
 }
Exemple #6
0
 protected function push(Scanner $scan)
 {
     $scan->getContext()->push($scan->token());
 }