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()
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()
#!/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)