def Begin():
    # parse arguments
    includes, defines, module, out, interfaces, multiple, cache_dir, create_cache, generate_main, gccxml_path = ParseArguments(
    )
    # run pyste scripts
    for interface in interfaces:
        ExecuteInterface(interface)
    # create the parser
    parser = CppParser(includes, defines, cache_dir, declarations.version,
                       gccxml_path)
    try:
        if not create_cache:
            if not generate_main:
                return GenerateCode(parser, module, out, interfaces, multiple)
            else:
                return GenerateMain(module, out, OrderInterfaces(interfaces))
        else:
            return CreateCaches(parser)
    finally:
        parser.Close()
Exemple #2
0
 def buildGraphSet(self, load = False):
     for cpp in self.sourceList:
         self.append2logFile("Creating seed for "+cpp)
         graphBackup = path.join( self.graphDir, path.basename(cpp).replace(".cpp", ".pickle"))
         miningBackup = path.join( self.frequentSubgraphDir, path.basename(cpp).replace(".cpp", ".pickle"))
         newGraphParser = CppParser(cpp, graphBackup, miningBackup)
         
         if load:
             print("loading graph for: ", cpp)
             newGraphParser.loadGraphFunction()
         else:
             print("building graph for: ", cpp)
             newGraphParser.parse()
             newGraphParser.saveGraphFunction()
         
         self.graphs.append(newGraphParser)
def Main():
    includes, defines, module, out, interfaces = ParseArguments()
    # execute the interface files
    for interface in interfaces:
        context = CreateContext()
        execfile(interface, context)
    # parse all the C++ code
    parser = CppParser(includes, defines)
    exports = exporters.exporters[:]
    for export in exports:
        try:
            export.Parse(parser)
        except CppParserError, e:
            print '\n'
            print '***', e, ': exitting'
            return 2
"""
from os.path import isdir, join, basename
from os import makedirs
from CppParser import CppParser

parsedDir = "mergedParsedForm"

if not isdir(parsedDir):
    makedirs(parsedDir)

fileA = "/home/michal/Projects/hessianIsomorphism/testData/mergingData/d_ne_dd_A0.ey.cpp"
fileB = "/home/michal/Projects/hessianIsomorphism/testData/mergingData/d_ne_dd_B0.ey.cpp"

resultFile = join(parsedDir, "fatality.cpp")

cppParserA = CppParser(fileA)
cppParserA.parse()
cppParserA.function.markNodesOrigin()

cppParserB = CppParser(fileB)
cppParserB.parse()
cppParserB.function.markNodesOrigin()

cppParserA.function.mergeWithExternalGraph(cppParserB.function.graph,
                                           cppParserB.function.name)
#print(cppParserA.function.notCanonicalKey2Node.keys())
cppParserA.function.rebuildGraph()
cppParserA.function.findDeadEnds()
cppParserA.function.rebuildGraph()

cppParserA.function.analyseOrigin()
Exemple #5
0
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Tue Dec 17 15:49:21 2019

@author: michal
"""

from CppParser import CppParser
import tracemalloc

tracemalloc.start()

testFile = "testData/automateusz_cpp_backup_low_level_optimized_ey/d2_ee_pppp_AA.ey.cpp"

cppParser = CppParser(testFile)
cppParser.parse()
cppParser.writeTest("dupa.cpp",
                    testCase="prediction",
                    reuseVariables=True,
                    printingMode=False)

snapshot = tracemalloc.take_snapshot()
top_stats = snapshot.statistics('lineno')

print("[ Top 10 ]")
for stat in top_stats[:10]:
    print(stat)