code: def _remove_line_directives(csource):
      # _r_line_directive matches whole lines, without the final \n, if they
      # start with '#line' with some spacing allowed, or '#NUMBER'.  This
      # function stores them away and replaces them with exactly the string
      # '#line@N', where N is the index in the list 'line_directives'.
      line_directives = []
  
      def replace(m):
          i = len(line_directives)
          line_directives.append(m.group())
          return "#line@%d" % i
  
      csource = _r_line_directive.sub(replace, csource)
      return csource, line_directives
  
imports: from .None import model
  from .commontypes import COMMON_TYPES, resolve_common_type
  from .error import FFIError, CDefError
  import weakref, re, sys
label_desc: Use image node_id 7 for calling a global function with example usage: _remove_line_directives(csource) and returns: csource,  line_directives, unknown