python/dist/src/Tools/bgen/bgen bgenGenerator.py, 1.18, 1.19 bgenObjectDefinition.py, 1.30, 1.31 scantools.py, 1.39, 1.40

Update of /cvsroot/python/python/dist/src/Tools/bgen/bgen In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6541 Modified Files: bgenGenerator.py bgenObjectDefinition.py scantools.py Log Message: Added optional suppport for storage modifiers (virtual/static/inline/etc) and conditional generation of objects and methods. Index: bgenGenerator.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Tools/bgen/bgen/bgenGenerator.py,v retrieving revision 1.18 retrieving revision 1.19 diff -u -d -r1.18 -r1.19 --- bgenGenerator.py 24 Jun 2005 19:46:36 -0000 1.18 +++ bgenGenerator.py 29 Jun 2005 14:17:04 -0000 1.19 @@ -15,18 +15,27 @@ class BaseFunctionGenerator: - def __init__(self, name, condition=None): + def __init__(self, name, condition=None, callname=None, modifiers=None): if DEBUG: print "<--", name self.name = name - self.callname = name + if callname: + self.callname = callname + else: + self.callname = name self.prefix = name self.objecttype = "PyObject" # Type of _self argument to function self.condition = condition + self.modifiers = modifiers def setprefix(self, prefix): self.prefix = prefix + def checkgenerate(self): + return True + def generate(self): + if not self.checkgenerate(): + return if DEBUG: print "-->", self.name if self.condition: Output() @@ -51,6 +60,8 @@ OutRbrace() def reference(self, name = None): + if not self.checkgenerate(): + return if name is None: name = self.name docstring = self.docstring() Index: bgenObjectDefinition.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Tools/bgen/bgen/bgenObjectDefinition.py,v retrieving revision 1.30 retrieving revision 1.31 diff -u -d -r1.30 -r1.31 --- bgenObjectDefinition.py 24 Jun 2005 19:46:52 -0000 1.30 +++ bgenObjectDefinition.py 29 Jun 2005 14:17:05 -0000 1.31 @@ -219,6 +219,9 @@ Output("if (PyType_Ready(&%s) < 0) return;", self.typename) Output("""Py_INCREF(&%s);""", self.typename) Output("PyModule_AddObject(m, \"%s\", (PyObject *)&%s);", self.name, self.typename); + self.outputTypeObjectInitializerCompat() + + def outputTypeObjectInitializerCompat(self): Output("/* Backward-compatible name */") Output("""Py_INCREF(&%s);""", self.typename); Output("PyModule_AddObject(m, \"%sType\", (PyObject *)&%s);", self.name, self.typename); Index: scantools.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Tools/bgen/bgen/scantools.py,v retrieving revision 1.39 retrieving revision 1.40 diff -u -d -r1.39 -r1.40 --- scantools.py 28 Jun 2005 15:14:35 -0000 1.39 +++ scantools.py 29 Jun 2005 14:17:05 -0000 1.40 @@ -620,11 +620,15 @@ (atype, aname, amode)) if self.greydictnames.has_key(name): self.specfile.write(" condition=%r,\n"%(self.greydictnames[name],)) + self.generatemodifiers(classname, name, modifiers) self.specfile.write(")\n") self.specfile.write("%s.append(f)\n\n" % listname) def destination(self, type, name, arglist): return "FunctionGenerator", "functions" + + def generatemodifiers(self, classname, name, modifiers): + pass def blacklisted(self, type, name): if type in self.blacklisttypes:
participants (1)
-
jackjansenï¼ users.sourceforge.net