# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # Example program that uses the python API. # Copy an archive. import sys, srcml if __name__ == "__main__": # int i; iarchive = None oarchive = None unit = None # open up an existing archive iarchive = srcml.create_archive() srcml.read_open_filename(iarchive, "main.cpp.xml") # create a new srcml archive structure # options and attributes of cloned archive start the same as # the original archive oarchive = srcml.clone_archive(iarchive) # open a srcML archive for output srcml.write_open_filename(oarchive, "cloned_archive.xml") # copy the files from the input archive to the output archive unit = srcml.read_unit(iarchive) while unit != None: # Translate to srcml and append to the archive srcml.write_unit(oarchive, unit)
# # You should have received a copy of the GNU General Public License # along with the srcML Toolkit; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # RelaxNG usage. import srcml if __name__ == "__main__": iarchive = srcml.create_archive() oarchive = None srcml.read_open_filename(iarchive, "project.xml") oarchive = srcml.clone_archive(iarchive) srcml.write_open_filename(oarchive, "relaxng.xml") srcml.append_transform_relaxng_filename(iarchive, "schema.rng"); srcml.apply_transforms(iarchive, oarchive); srcml.close_archive(iarchive); srcml.close_archive(oarchive); srcml.free_archive(iarchive); srcml.free_archive(oarchive);
iarchive = None oarchive = None num_units = 0 units = [] inputfile = "project.xml" outputfile = "project_tmp.xml" # open up an existing archive iarchive = srcml.create_archive() # create a new srcml archive structure # options and attributes of cloned archive start the same as # the original archive oarchive = srcml.clone_archive(iarchive) srcml.read_open_filename(iarchive, inputfile) unit = srcml.read_unit(iarchive) while unit != None: units.append(unit) unit = srcml.read_unit(iarchive) units.sort(key=lambda x:srcml.unit_get_filename(x) ) # open a srcML archive for output srcml.write_open_filename(oarchive, outputfile) for u in units: # copy the files from the input archive to the output archive # Translate to srcml and append to the archive srcml.write_unit(oarchive, u)