old_contents: 
  import sys
  from xml.etree import ElementTree
  
  CTEMPLATE = \
  """
  /*
   * This file has been auto-generated from the introspection data available
   * in the at-spi2-core repository. The D-Bus procol is defined in this
   * repository, which can be found at:
   *
   * http://download.gnome.org/sources/at-spi2-core/0.1/
   *
   * DO NOT EDIT.
   */
  
  %s
  """
  
  HTEMPLATE = \
  """
  /*
   * This file has been auto-generated from the introspection data available
   * in the at-spi2-core repository. The D-Bus procol is defined in this
   * repository, which can be found at:
   *
   * http://download.gnome.org/sources/at-spi2-core/0.1/
   *
   * DO NOT EDIT.
   */
  
  #ifndef SPI_INTROSPECTION_DATA_H_
  #define SPI_INTROSPECTION_DATA_H_
  
  %s
  
  #endif /* SPI_INTROSPECTION_DATA_H_ */
  """
  
  DECTEMPLATE = \
  """
  const char *%s;
  """
  
  DEFTEMPLATE = \
  """
  const char *%s = 
  %s;
  """
  
  VERSION = "0.1.7"
  
  def convert_name (name):
  	return "spi_" + name.replace (".", "_")
  
  def convert_contents (contents):
  	contents = contents.replace ("\"", "\\\"")
  	literals = ["\"%s\"" % (line) for line in contents.split ("\n")]
  	return "\n".join (literals)
  
  def main (argv):
  	#Open the XML file and process includes.
  	tree = ElementTree.parse ("Processed.xml")
  	root = tree.getroot ()
  
  	#Open the output files.
  	cfile = open ("introspection.c", "w")
  	hfile = open ("introspection.h", "w")
  
  	ccontents = ""
  	hcontents = ""
  
  	for itf in root.findall ("node/interface"):
  		#Get and convert the name of the interface.
  		name = convert_name (itf.attrib["name"])
  
  		#Create the introspection string with version information.
  		itf.attrib["version"] = VERSION
  		contents = convert_contents (ElementTree.tostring (itf))
  
  		hcontents += DECTEMPLATE % (name)
  		ccontents += DEFTEMPLATE % (name, contents)
  
  	cfile.write (CTEMPLATE % (ccontents))
  	hfile.write (HTEMPLATE % (hcontents))
  
  	cfile.close ()
  	hfile.close ()	
  	
  if __name__ == "__main__":
  	sys.exit(main(sys.argv))
  
new_contents: 
  import sys
  from xml.etree import ElementTree
  
  CTEMPLATE = \
  """
  /*
   * This file has been auto-generated from the introspection data available
   * in the at-spi2-core repository. The D-Bus procol is defined in this
   * repository, which can be found at:
   *
   * http://download.gnome.org/sources/at-spi2-core/0.1/
   *
   * DO NOT EDIT.
   */
  
  %s
  """
  
  HTEMPLATE = \
  """
  /*
   * This file has been auto-generated from the introspection data available
   * in the at-spi2-core repository. The D-Bus procol is defined in this
   * repository, which can be found at:
   *
   * http://download.gnome.org/sources/at-spi2-core/0.1/
   *
   * DO NOT EDIT.
   */
  
  #ifndef SPI_INTROSPECTION_DATA_H_
  #define SPI_INTROSPECTION_DATA_H_
  
  %s
  
  #endif /* SPI_INTROSPECTION_DATA_H_ */
  """
  
  DECTEMPLATE = \
  """
  extern const char *%s;
  """
  
  DEFTEMPLATE = \
  """
  const char *%s = 
  %s;
  """
  
  VERSION = "0.1.7"
  
  def convert_name (name):
  	return "spi_" + name.replace (".", "_")
  
  def convert_contents (contents):
  	contents = contents.replace ("\"", "\\\"")
  	literals = ["\"%s\"" % (line) for line in contents.split ("\n")]
  	return "\n".join (literals)
  
  def main (argv):
  	#Open the XML file and process includes.
  	tree = ElementTree.parse ("Processed.xml")
  	root = tree.getroot ()
  
  	#Open the output files.
  	cfile = open ("introspection.c", "w")
  	hfile = open ("introspection.h", "w")
  
  	ccontents = ""
  	hcontents = ""
  
  	for itf in root.findall ("node/interface"):
  		#Get and convert the name of the interface.
  		name = convert_name (itf.attrib["name"])
  
  		#Create the introspection string with version information.
  		itf.attrib["version"] = VERSION
  		contents = convert_contents (ElementTree.tostring (itf))
  
  		hcontents += DECTEMPLATE % (name)
  		ccontents += DEFTEMPLATE % (name, contents)
  
  	cfile.write (CTEMPLATE % (ccontents))
  	hfile.write (HTEMPLATE % (hcontents))
  
  	cfile.close ()
  	hfile.close ()	
  	
  if __name__ == "__main__":
  	sys.exit(main(sys.argv))
  
subject: Define prototypes as extern