code: def t_ID(t):
      r'[a-zA-Z][a-zA-Z0-9]*[$%]?'
      t.type = reserved.get(t.value.lower(), 'ID')
      callables = {
          api.constants.CLASS.array: 'ARRAY_ID',
      }
  
      if t.type != 'ID':
          t.value = t.type
      else:
          entry = api.global_.SYMBOL_TABLE.get_entry(t.value) if api.global_.SYMBOL_TABLE is not None else None
          if entry:
              t.type = callables.get(entry.class_, t.type)
  
      if t.type == 'BIN':
          t.lexer.begin('bin')
          return None
  
      return f t_ID(t):
      r'[a-zA-Z][a-zA-Z0-9]*[$%]?'
      t.type = reserved.get(t.value.lower(), 'ID')
      callables = {
          api.constants.CLASS.array: 'ARRAY_ID',
      }
  
      if t.type != 'ID':
          t.value = t.type
      else:
          entry = api.global_.SYMBOL_TABLE.get_entry(t.value) if api.global_.SYMBOL_TABLE is not None else None
          if entry:
              t.type = callables.get(entry.class_, t.type)
  
      if t.type == 'BIN':
          t.lexer.begin('bin')
          return None
  
      return t
docs: r'[a-zA-Z][a-zA-Z0-9]*[$%]?