示例#1
0
# 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)
示例#2
0
#
# 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);
示例#3
0
    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)