} $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"; }