def generate_code(buildFolder, file, outputfile, with_python=False, with_cubescript=True, with_json=True): outputFileAbs = os.path.abspath(outputfile) parser = CppParser(buildFolder, file) parser.start(outputFileAbs) parser.cppmodel_generate() generatedCubeScript = "" generatedJsonSerializer = "" generatedPythonBinding = "" if with_cubescript: generatedCubeScript = CubeScriptBinding.GenerateWithoutMacros( parser.cppmodel()) if with_json: generatedJsonSerializer = JsonSerializer.Generate(parser.cppmodel()) if with_python: generatedPythonBinding = PythonScriptBinding.Generate( parser.cppmodel()) if (generatedCubeScript and generatedCubeScript != "\n") or ( generatedJsonSerializer and generatedJsonSerializer != "\n") or ( generatedPythonBinding and generatedPythonBinding != "\n"): file_write_data( outputFileAbs, generatedCubeScript + "\n\n" + generatedJsonSerializer + "\n\n" + generatedPythonBinding) print(f"ok {outputFileAbs}") else: file_write_data(outputFileAbs, "") print(f"ok empty {outputFileAbs}")
def refactor(buildFolder, file, outputFolder, classPattern): parser = CppParser(buildFolder, file) parser.start(outputFileHeaderAbs) parser.cppmodel_refactor_generate() rootNode = parser.cppmodel() if classPattern == "*": from autobind.cppmodel.CxxClass import CxxClass for node in cxxRootNode.forEachChild(noDepth=True): if type(node) is CxxClass: className = node.sourceObject.spelling outputFileHeaderAbs = os.path.abspath( os.path.join(outputFolder, className + ".h")) outputFileSourceAbs = os.path.abspath( os.path.join(outputFolder, className + ".cpp")) generatedHeader = ClassHeaderSourceSplitter.Generate( rootNode, className) else: className = classPattern outputFileHeaderAbs = os.path.abspath( os.path.join(outputFolder, className + ".h")) outputFileSourceAbs = os.path.abspath( os.path.join(outputFolder, className + ".cpp")) generatedHeader = ClassHeaderSourceSplitter.Generate( rootNode, className)
def generate_code(buildFolder, file, outputfile): parser = CppParser(buildFolder, file) parser.start(outputfile) parser.cppmodel_generate() generatedCubeScript = CubeScriptBinding.GenerateWithoutMacros( parser.cppmodel()) generatedJsonSerializer = JsonSerializer.Generate(parser.cppmodel()) if (generatedCubeScript and generatedCubeScript != "\n") or ( generatedJsonSerializer and generatedJsonSerializer != "\n"): file_write_data(outputfile, generatedCubeScript + "\n\n" + generatedJsonSerializer) print("ok") else: file_write_data(outputfile, "") print("ok empty")
def debug_cppmodel_refactor(buildFolder, file, outputfile): parser = CppParser(buildFolder, file) parser.start(outputfile) parser.cppmodel_refactor_generate() parser.dump_cppmodel()
def debug_dump(buildFolder, file, outputfile): parser = CppParser(buildFolder, file) parser.start(outputfile) parser.tree_generate() parser.dump_tree()
def find_deps(file, commonRoot): parser = CppParser(file, skipComments=True) parser.start(skipFunctionBodies=True) parser.cppmodel_find_includes(commonRoot)
def debug_cppmodel(file): parser = CppParser(file) parser.start() parser.cppmodel_generate() parser.dump_cppmodel()
def debug_dump(file): parser = CppParser(file) parser.start() parser.tree_generate() parser.dump_tree()