[Python-checkins] python/dist/src/Tools/bgen/bgen bgenGenerator.py, 1.18, 1.19 bgenObjectDefinition.py, 1.30, 1.31 scantools.py, 1.39, 1.40

jackjansen@users.sourceforge.net jackjansen at users.sourceforge.net
Wed Jun 29 16:17:09 CEST 2005


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:


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /