From: Jack Jansen Date: Thu, 16 Jun 2005 21:26:24 +0000 (+0000) Subject: More factorization. X-Git-Tag: v2.5a0~1685 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=2ab0ae6a5431205aeda1142342b4df052f2e4845;p=thirdparty%2FPython%2Fcpython.git More factorization. --- diff --git a/Tools/bgen/bgen/bgenType.py b/Tools/bgen/bgen/bgenType.py index 9d5b4f81212a..2f0bc57350d1 100644 --- a/Tools/bgen/bgen/bgenType.py +++ b/Tools/bgen/bgen/bgenType.py @@ -24,11 +24,16 @@ class Type: Example: int.declare('spam') prints "int spam;" """ + Output("%s;", self.getDeclaration(name, reference)) + + def getDeclaration(self, name, reference=False): + """Return a string declaring a variable or argument, without + any syntactic adornment""" if reference: - Output("%s& %s;", self.typeName, name) + return "%s& %s" % (self.typeName, name) else: - Output("%s %s;", self.typeName, name) - + return "%s %s" % (self.typeName, name) + def getargs(self): return self.getargsFormat(), self.getargsArgs() @@ -72,6 +77,7 @@ class Type: Default is to call passInput(). """ return self.passInput(name) + def errorCheck(self, name): """Check for an error returned in the variable. diff --git a/Tools/bgen/bgen/bgenVariable.py b/Tools/bgen/bgen/bgenVariable.py index 36c287d6e5df..a71d0f54e8d4 100644 --- a/Tools/bgen/bgen/bgenVariable.py +++ b/Tools/bgen/bgen/bgenVariable.py @@ -43,6 +43,11 @@ class Variable: self.type.declare(self.name, reference=True) elif self.flags != SelfMode: self.type.declare(self.name) + + def getDeclaration(self): + """Return the unadorned declaration of the variable, + suitable for use in a formal parameter list.""" + return self.type.getDeclaration(self.name) def getargsFormat(self): """Call the type's getargsFormatmethod."""