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 )
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