From bf7255fffb5dda1b9541892cc40412bb6bbd4409 Mon Sep 17 00:00:00 2001 From: Jack Jansen Date: Fri, 10 Jun 2005 10:46:40 +0000 Subject: Minor tweaks, to allow some (out-of-tree, until successful) tinkering with C++. --- Tools/bgen/bgen/bgenGenerator.py | 10 +++++----- Tools/bgen/bgen/bgenObjectDefinition.py | 16 ++++++++++------ 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/Tools/bgen/bgen/bgenGenerator.py b/Tools/bgen/bgen/bgenGenerator.py index e1f240c..471c5fa 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 72e2678..ffdd544 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) -- cgit v0.12