code: def read_name(self, start: int, line: int, col: int, prev: Token) -> Token:
          
          body = self.source.body
          body_length = len(body)
          position = start + 1
          while position < body_length:
              char = body[position]
              if not (
                  char == "_"
                  or "0" <= char <= "9"
                  or "A" <= char <= "Z"
                  or "a" <= char <= "z"
              ):
                  break
              position += 1
          return Token(
              TokenKind.NAME, start, position, line, col, prev, body[start:position]
          )
docs: Read an alphanumeric + underscore name from the source.