def genCustomClass(nameSpace, classNameSrc, idx, methodArgs):
    classNameCXX = gen.getClassNameCXX(nameSpace, classNameSrc)
    classNamePD = gen.getClassNamePD(nameSpace, classNameSrc)
    classNameLetters = classNamePD.replace(".","_")
    return customClassTemplate.format(CLASSNAME_CXX = classNameCXX, \
    CLASSNAME_PD = classNamePD, \
    CLASSNAME_LETTERS = classNameLetters, \
    CONSTRUCTOR = classNameSrc, \
    NAMESPACE = nameSpace, \
    IDX = idx, \
    METHOD_ARGS = methodArgs)
def genClassStaticMethod(nameSpace, classNameSrc, idx, methodNameSrc, methodReturn, methodArgs):
    classNameCXX = gen.getClassNameCXX(nameSpace, classNameSrc)
    classNamePD = gen.getClassNamePD(nameSpace, classNameSrc)
    classNameLetters = classNamePD.replace(".","_")
    methodNameCXX = methodNameSrc
    methodNamePD = gen.convertName(methodNameSrc)
    methodNameLetters = methodNamePD.replace(".","_")
    #
    return classStaticMethodTemplate.format(NAMESPACE = nameSpace, \
    CLASSNAME_CXX = classNameCXX, \
    CLASSNAME_PD = classNamePD, \
    CLASSNAME_LETTERS = classNameLetters, \
    METHODNAME_CXX = methodNameCXX, \
    METHODNAME_PD = methodNamePD, \
    METHODNAME_LETTERS = methodNameLetters, \
    IDX = idx, \
    METHOD_RETURN = methodReturn, \
    METHOD_ARGS = methodArgs)
for fullFileName in gen.getHeaderFilesFullPath():
    # if filename.endswith(".hpp") or filename.endswith(".h"):
    if True:
        try:
            cppHeader = CppHeaderParser.CppHeader(fullFileName)
        except CppHeaderParser.CppParseError as e:
            print(e)
            sys.exit(1)

        for f in cppHeader.functions:
            m = f

            if m["template"] != False:
                continue

            pdObjectName = gen.getClassNamePD(
                m["namespace"], m["name"])  #gen.convertName(m["name"])

            methodType = [t["type"] for t in m["parameters"]]
            methodReturn = m["rtnType"]

            methodInfoString = "(" + " ".join(
                methodType) + ")->" + methodReturn

            methodName = m["name"]

            docwrite.staticMethodObject("function", "", pdObjectName,
                                        methodType, methodReturn, "function")

            dbFile.write("{0} . ..\n".format(pdObjectName))

        for c in cppHeader.classes:
def genClass(nameSpace, classNameSrc):
    classNameCXX = gen.getClassNameCXX(nameSpace, classNameSrc)
    classNamePD = gen.getClassNamePD(nameSpace, classNameSrc)
    return classTemplate.format(CLASSNAME_CXX = classNameCXX, NAMESPACE = nameSpace, CLASSNAME_PD = classNamePD)
def genFunc(nameSpace, funcNameSrc,  idx, funcReturn, funcArgs):
    funcNameCXX = gen.getClassNameCXX(nameSpace, funcNameSrc)
    funcNamePD = gen.getClassNamePD(nameSpace, funcNameSrc)
    return funcTemplate.format(FUNCTIONNAME_CXX = funcNameCXX, NAMESPACE = nameSpace, FUNCTIONNAME_PD = funcNamePD, IDX = idx, FUNC_RETURN = funcReturn, FUNC_ARGS = funcArgs )
Ejemplo n.º 6
0
            outputFile.write(toWrite)

            methodIndex += 1

        # -----------------

        for c in cppHeader.classes:

            className = c
            nameSpace = cppHeader.classes[c]["namespace"]

            # todo: clean up
            justClassName = c

            nameCXX = gen.getClassNameCXX(nameSpace, className)
            namePD = gen.getClassNamePD(nameSpace, className)

            hasDefaultConstructor = False
            hasConstructor = False
            for m in cppHeader.classes[c]["methods"]["public"]:

                if m["constructor"]:
                    hasConstructor = True
                    methodType = [t["type"] for t in m["parameters"]]
                    if methodType == "":
                        hasDefaultConstructor = True
                        continue
            #implicit
            if (not hasConstructor) and (not hasDefaultConstructor):
                hasDefaultConstructor = True