summaryrefslogtreecommitdiff
path: root/Tools/bgen
diff options
context:
space:
mode:
authorJack Jansen <jack.jansen@cwi.nl>2005-06-10 10:46:40 +0000
committerJack Jansen <jack.jansen@cwi.nl>2005-06-10 10:46:40 +0000
commite60b1e4763625f7b136ecfa2250bd74ba136c936 (patch)
treefeac3a6f8bafc9b07369326496fdeaa42a2136f8 /Tools/bgen
parent5b484dbd56597dbaf7a691394122a32465ae713a (diff)
downloadcpython-e60b1e4763625f7b136ecfa2250bd74ba136c936.tar.gz
Minor tweaks, to allow some (out-of-tree, until successful) tinkering
with C++.
Diffstat (limited to 'Tools/bgen')
-rw-r--r--Tools/bgen/bgen/bgenGenerator.py10
-rw-r--r--Tools/bgen/bgen/bgenObjectDefinition.py16
2 files changed, 15 insertions, 11 deletions
diff --git a/Tools/bgen/bgen/bgenGenerator.py b/Tools/bgen/bgen/bgenGenerator.py
index e1f240c629..471c5fa300 100644
--- a/Tools/bgen/bgen/bgenGenerator.py
+++ b/Tools/bgen/bgen/bgenGenerator.py
@@ -18,6 +18,7 @@ class BaseFunctionGenerator:
def __init__(self, name, condition=None):
if DEBUG: print "<--", name
self.name = name
+ self.callname = name
self.prefix = name
self.objecttype = "PyObject" # Type of _self argument to function
self.condition = condition
@@ -202,7 +203,7 @@ class FunctionGenerator(BaseFunctionGenerator):
def callit(self):
args = ""
if self.rv:
- s = "%s = %s(" % (self.rv.name, self.name)
+ s = "%s = %s(" % (self.rv.name, self.callname)
else:
s = "%s(" % self.name
sep = ",\n" + ' '*len(s)
@@ -214,9 +215,9 @@ class FunctionGenerator(BaseFunctionGenerator):
args = args + s
if self.rv:
Output("%s = %s(%s);",
- self.rv.name, self.name, args)
+ self.rv.name, self.callname, args)
else:
- Output("%s(%s);", self.name, args)
+ Output("%s(%s);", self.callname, args)
def checkit(self):
for arg in self.argumentList:
@@ -255,8 +256,7 @@ class MethodGenerator(FunctionGenerator):
self.itself = Variable(t0, "_self->ob_itself", SelfMode)
self.argumentList.append(self.itself)
FunctionGenerator.parseArgumentList(self, args)
-
-
+
def _test():
void = None
eggs = FunctionGenerator(void, "eggs",
diff --git a/Tools/bgen/bgen/bgenObjectDefinition.py b/Tools/bgen/bgen/bgenObjectDefinition.py
index 72e2678bb0..ffdd5446e1 100644
--- a/Tools/bgen/bgen/bgenObjectDefinition.py
+++ b/Tools/bgen/bgen/bgenObjectDefinition.py
@@ -44,12 +44,8 @@ class ObjectDefinition(GeneratorGroup):
OutHeader2("Object type " + self.name)
- sf = self.static and "static "
- Output("%sPyTypeObject %s;", sf, self.typename)
- Output()
- Output("#define %s_Check(x) ((x)->ob_type == &%s || PyObject_TypeCheck((x), &%s))",
- self.prefix, self.typename, self.typename)
- Output()
+ self.outputCheck()
+
Output("typedef struct %s {", self.objecttype)
IndentLevel()
Output("PyObject_HEAD")
@@ -84,6 +80,14 @@ class ObjectDefinition(GeneratorGroup):
OutHeader2("End object type " + self.name)
+ def outputCheck(self):
+ sf = self.static and "static "
+ Output("%sPyTypeObject %s;", sf, self.typename)
+ Output()
+ Output("#define %s_Check(x) ((x)->ob_type == &%s || PyObject_TypeCheck((x), &%s))",
+ self.prefix, self.typename, self.typename)
+ Output()
+
def outputMethodChain(self):
Output("%sPyMethodChain %s_chain = { %s_methods, %s };",
self.static, self.prefix, self.prefix, self.basechain)