code: def read_name(source, position):
      """Reads an alphanumeric + underscore name from the source.
  
      [_A-Za-z][_0-9A-Za-z]*"""
      body = source.body
      body_length = len(body)
      end = position + 1
  
      while end != body_length:
          code = char_code_at(body, end)
          if not (
              code is not None
              and (
                  code == 95
                  or 48 <= code <= 57  # _
                  or 65 <= code <= 90  # 0-9
                  or 97 <= code <= 122  # A-Z  # a-z
              )
          ):
              break
  
          end += 1
  
      return Token(TokenKind.NAME, position, end, body[position:end])
  
imports: import json
  from ..error import GraphQLSyntaxError
label_desc: Use image node_id 12 for calling a global function with example usage: read_name(source, position) and returns: Token