Track and translate typenames where possible

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@25052 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn
2003-12-31 20:49:08 +00:00
parent 66ff56694e
commit 6f40108088
2 changed files with 7114 additions and 7098 deletions

View File

@@ -15,6 +15,11 @@ DEST="docs/xml/wxPython-metadata.xml"
SRC="docs/xml-raw" SRC="docs/xml-raw"
classMap = {
'wxString' : 'String',
'void' : '',
}
def getModuleNames(): def getModuleNames():
""" """
@@ -38,7 +43,14 @@ def getAttr(node, name):
return None return None
def fixType(typeStr):
"""
Fixup type string, dropping the swig pointer and other flags
"""
pos = typeStr.rfind('.')
if pos != -1:
typeStr = typeStr[pos+1:]
return classMap.get(typeStr, typeStr)
def processModule(newDocNode, modulename): def processModule(newDocNode, modulename):
@@ -100,7 +112,7 @@ def processInclude(moduleNode, includeNode):
func = libxml2.newNode("method") func = libxml2.newNode("method")
func.setProp("name", getAttr(node, "sym_name")) func.setProp("name", getAttr(node, "sym_name"))
func.setProp("oldname", getAttr(node, "name")) func.setProp("oldname", getAttr(node, "name"))
func.setProp("type", getAttr(node, "type")) func.setProp("type", fixType(getAttr(node, "type")))
doCheckOverloaded(func, node) doCheckOverloaded(func, node)
doDocStrings(func, node) doDocStrings(func, node)
doParamList(func, node) doParamList(func, node)
@@ -132,8 +144,11 @@ def processClass(parentNode, classNode):
""" """
# make class element # make class element
klass = libxml2.newNode("class") klass = libxml2.newNode("class")
klass.setProp("name", getAttr(classNode, "sym_name")) name = getAttr(classNode, "sym_name")
klass.setProp("oldname", getAttr(classNode, "name")) oldname = getAttr(classNode, "name")
classMap[oldname] = name
klass.setProp("name", name)
klass.setProp("oldname", oldname)
klass.setProp("module", getAttr(classNode, "module")) klass.setProp("module", getAttr(classNode, "module"))
doDocStrings(klass, classNode) doDocStrings(klass, classNode)
parentNode.addChild(klass) parentNode.addChild(klass)
@@ -141,7 +156,8 @@ def processClass(parentNode, classNode):
# check for baseclass(es) # check for baseclass(es)
for node in classNode.xpathEval2("attributelist/baselist/base"): for node in classNode.xpathEval2("attributelist/baselist/base"):
baseclass = libxml2.newNode("baseclass") baseclass = libxml2.newNode("baseclass")
baseclass.setProp("name", node.prop("name")) basename = node.prop("name")
baseclass.setProp("name", classMap.get(basename, basename))
klass.addChild(baseclass) klass.addChild(baseclass)
# check for constructors/destructors # check for constructors/destructors
@@ -162,7 +178,7 @@ def processClass(parentNode, classNode):
if view == "memberfunctionHandler": if view == "memberfunctionHandler":
func = libxml2.newNode("method") func = libxml2.newNode("method")
func.setProp("name", getAttr(node, "sym_name")) func.setProp("name", getAttr(node, "sym_name"))
func.setProp("type", getAttr(node, "type")) func.setProp("type", fixType(getAttr(node, "type")))
doCheckOverloaded(func, node) doCheckOverloaded(func, node)
doDocStrings(func, node) doDocStrings(func, node)
doParamList(func, node) doParamList(func, node)
@@ -171,7 +187,7 @@ def processClass(parentNode, classNode):
elif view == "staticmemberfunctionHandler": elif view == "staticmemberfunctionHandler":
func = libxml2.newNode("staticmethod") func = libxml2.newNode("staticmethod")
func.setProp("name", getAttr(node, "sym_name")) func.setProp("name", getAttr(node, "sym_name"))
func.setProp("type", getAttr(node, "type")) func.setProp("type", fixType(getAttr(node, "type")))
doCheckOverloaded(func, node) doCheckOverloaded(func, node)
doDocStrings(func, node) doDocStrings(func, node)
doParamList(func, node) doParamList(func, node)
@@ -180,7 +196,7 @@ def processClass(parentNode, classNode):
elif view == "variableHandler": elif view == "variableHandler":
prop = libxml2.newNode("property") prop = libxml2.newNode("property")
prop.setProp("name", getAttr(node, "sym_name")) prop.setProp("name", getAttr(node, "sym_name"))
prop.setProp("type", getAttr(node, "type")) prop.setProp("type", fixType(getAttr(node, "type")))
if getAttr(node, "feature_immutable"): if getAttr(node, "feature_immutable"):
prop.setProp("readonly", "yes") prop.setProp("readonly", "yes")
else: else:
@@ -199,8 +215,8 @@ def doParamList(parentNode, srcNode):
plist = libxml2.newNode("paramlist") plist = libxml2.newNode("paramlist")
for p in params: for p in params:
pnode = libxml2.newNode("param") pnode = libxml2.newNode("param")
pnode.setProp("name", getAttr(p, "name")) pnode.setProp("name", getAttr(p, "name"))
pnode.setProp("type", getAttr(p, "type")) pnode.setProp("type", fixType(getAttr(p, "type")))
pnode.setProp("default", getAttr(p, "value")) pnode.setProp("default", getAttr(p, "value"))
plist.addChild(pnode) plist.addChild(pnode)
parentNode.addChild(plist) parentNode.addChild(plist)
@@ -255,7 +271,7 @@ def main():
processModule(newTopNode, m) processModule(newTopNode, m)
newDoc.saveFormatFile(DEST, True) newDoc.saveFormatFile(DEST, True)
print "Wrote simplified metadata to", DEST
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------

File diff suppressed because it is too large Load Diff