Пример #1
0
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}")
Пример #2
0
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)
Пример #3
0
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")
Пример #4
0
def debug_cppmodel_refactor(buildFolder, file, outputfile):
    parser = CppParser(buildFolder, file)
    parser.start(outputfile)
    parser.cppmodel_refactor_generate()
    parser.dump_cppmodel()
Пример #5
0
def debug_dump(buildFolder, file, outputfile):
    parser = CppParser(buildFolder, file)
    parser.start(outputfile)
    parser.tree_generate()
    parser.dump_tree()
Пример #6
0
def find_deps(file, commonRoot):
    parser = CppParser(file, skipComments=True)
    parser.start(skipFunctionBodies=True)
    parser.cppmodel_find_includes(commonRoot)
Пример #7
0
def debug_cppmodel(file):
    parser = CppParser(file)
    parser.start()
    parser.cppmodel_generate()
    parser.dump_cppmodel()
Пример #8
0
def debug_dump(file):
    parser = CppParser(file)
    parser.start()
    parser.tree_generate()
    parser.dump_tree()