$tok =
$this->scanner->
current();
if ('/' ==
$tok || '>' ==
$tok || false ===
$tok) { return false;
} if ('<' ==
$tok) { $this->
parseError("Unexpected '<' inside of attributes list."
);
// Push the < back onto the stack.
$this->scanner->
unconsume();
// Let the caller figure out how to handle this.
throw new ParseError('Start tag inside of attribute.'
);
} $name =
strtolower($this->scanner->
charsUntil("/>=\n\f\t "
));
if (0 ==
strlen($name)) { $tok =
$this->scanner->
current();
$this->
parseError('Expected an attribute name, got %s.',
$tok);
// Really, only '=' can be the char here. Everything else gets absorbed
// under one rule or another.
$name =
$tok;
$this->scanner->
consume();
}