/** * Detect and consume identifiers * * @param ReaderInterface $reader * * @return boolean */ protected function consumeIdentifiers(ReaderInterface $reader) { $nextChar = $reader->currentChar(); if (preg_match('/[a-zA-Z]/', $nextChar)) { $nextChar = $reader->forwardChar(); while (preg_match('/[a-zA-Z0-9_]/', $nextChar)) { $nextChar = $reader->forwardChar(); } $token = new GenericToken(GenericToken::TK_IDENTIFIER, $reader->consume()); $this->addToken($reader, $token); return true; } return false; }
public function __construct(ReaderInterface $reader, $msg) { $msg = sprintf("SCANNER ERROR: %s at line %s, column %s.\nCurrent buffer \"%s\"", $msg, $reader->getCurrentLine(), $reader->getCurrentColumn(), $reader->consume()); parent::__construct($msg); }