code: def get_preprocessor(
      *,
      file_macros=None,
      file_includes=None,
      file_incldirs=None,
      file_same=None,
      **kwargs,
  ):
      macros = tuple(MACROS)
      if file_macros:
          macros += tuple(file_macros)
      includes = tuple(INCLUDES)
      if file_includes:
          includes += tuple(file_includes)
      incldirs = tuple(INCL_DIRS)
      if file_incldirs:
          incldirs += tuple(file_incldirs)
      samefiles = dict(SAME)
      if file_same:
          samefiles.update(file_same)
      return _get_preprocessor(
          file_macros=macros,
          file_includes=includes,
          file_incldirs=incldirs,
          file_same=samefiles,
          **kwargs,
      )
  
file_path: cpython/Tools/c-analyzer/cpython/_parser.py
imports: import os.path
  import re
  from c_parser.preprocessor import get_preprocessor
  from c_parser import parse_file, parse_files
  from .None import REPO_ROOT
label_desc: Use image node_id 3 for calling a global function with example usage: get_preprocessor() and returns: _get_preprocessor