docstr: Add table names to table set
  
  :param token_list: TokenList to be processed
code: def _process_tokenlist(self, token_list: TokenList) -> None:
      """
      Add table names to table set
  
      :param token_list: TokenList to be processed
      """
      # exclude subselects
      if "(" not in str(token_list):
          table = self.get_table(token_list)
          if table and not table.table.startswith(CTE_PREFIX):
              self._tables.add(table)
          return
  
      # store aliases
      if token_list.has_alias():
          self._alias_names.add(token_list.get_alias())
  
      # some aliases are not parsed properly
      if token_list.tokens[0].ttype == Name:
          self._alias_names.add(token_list.tokens[0].value)
      self._extract_from_token(token_list)
  
imports: import logging
  import re
  from collections.abc import Iterator
  from dataclasses import dataclass
  from typing import Any, cast, Optional
  from urllib import parse
  import sqlparse
  from sqlalchemy import and_
  from sqlparse import keywords
  from sqlparse.lexer import Lexer
  from sqlparse.sql import Identifier, IdentifierList, Parenthesis, remove_quotes, Token, TokenList, Where
  from sqlparse.tokens import Comment, CTE, DDL, DML, Keyword, Name, Punctuation, String, Whitespace, Wildcard
  from sqlparse.utils import imt
  from superset.exceptions import QueryClauseValidationException
  from superset.utils.backports import StrEnum
label_desc: Use image node_id 19 for calling the ParsedQuery obj's underlying member method code with example usage: obj._process_tokenlist(token_list) without return types