</unit> """ # create a new srcml archive structure archive = srcml.create_archive() srcml.read_open_memory(archive, s, len(s)) # add all the files to the archive unit = srcml.read_unit(archive) while unit != None: # can inquire about the current unit language = srcml.unit_get_language(unit) filename = srcml.unit_get_filename(unit) # uparse and write to a file srcml.unparse_unit_memory(unit, buffer, size) print buffer.value # free((void *)buffer); srcml.free(buffer) srcml.free_unit(unit) unit = srcml.read_unit(archive) # close the srcML archive srcml.close_archive(archive) # free the srcML archive data srcml.free_archive(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) srcml.free_unit(u) # close the archives srcml.close_archive(oarchive) srcml.close_archive(iarchive) # free the srcML archive data srcml.free_archive(oarchive) srcml.free_archive(iarchive)