コード例 #1
0
</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)
コード例 #2
0
    # 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)