code: def _write_decls_tsv(decls, outfile, extracolumns, kwargs):
      columns = _get_columns("decls", extracolumns)
      if extracolumns:
  
          def render_decl(decl):
              if type(row) is tuple:
                  decl, *extra = decl
              else:
                  extra = ()
              extra += ("???",) * (len(extraColumns) - len(extra))
              *row, declaration = _render_known_row(decl)
              row += extra + (declaration,)
              return row
  
      else:
          render_decl = _render_known_decl
      _tables.write_table(
          outfile,
          header="\t".join(columns),
          rows=(render_decl(d) for d in decls),
          sep="\t",
          **kwargs,
      )
  
file_path: cpython/Tools/c-analyzer/c_parser/datafiles.py
imports: import os.path
  from c_common import fsutil
  import c_common.tables
  import c_parser.info
label_desc: Use image node_id 11 for calling a global function with example usage: _write_decls_tsv(decls, outfile, extracolumns, kwargs) and returns: row