protected function lexName(int $line, int $column, Token $prev): Token
    {
        $start = $this->position;

        ++$this->position;

        while ($this->position !== $this->bodyLength &&
            ($code = $this->readCharCode($this->position)) !== 0 &&
            isAlphaNumeric($code)) {
            ++$this->position;
        }

        $value = sliceString($this->body, $start, $this->position);

        return new Token(TokenKindEnum::NAME, $start, $this->position, $line, $column, $prev, $value);
    }