private function readName($position, $line, $col, Token $prev)
{
$body = $this->source->body;
$bodyLength = $this->source->length;
$end = $position + 1;
while ($end !== $bodyLength && ($code = Utils::charCodeAt($body, $end)) && ($code === 95 || $code >= 48 && $code <= 57 || $code >= 65 && $code <= 90 || $code >= 97 && $code <= 122)) {
++$end;
}
return new Token(Token::NAME, $position, $end, $line, $col, $prev, mb_substr($body, $position, $end - $position, 'UTF-8'));
}