More factorization.
diff --git a/Tools/bgen/bgen/bgenType.py b/Tools/bgen/bgen/bgenType.py
index 9d5b4f8..2f0bc57 100644
--- a/Tools/bgen/bgen/bgenType.py
+++ b/Tools/bgen/bgen/bgenType.py
@@ -24,11 +24,16 @@
 
         Example: int.declare('spam') prints "int spam;"
         """
-        if reference:
-            Output("%s& %s;", self.typeName, name)
-        else:
-            Output("%s %s;", self.typeName, name)
+        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:
+            return "%s& %s" % (self.typeName, name)
+        else:
+            return "%s %s" % (self.typeName, name)
+            
     def getargs(self):
         return self.getargsFormat(), self.getargsArgs()
 
@@ -72,6 +77,7 @@
         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 36c287d..a71d0f5 100644
--- a/Tools/bgen/bgen/bgenVariable.py
+++ b/Tools/bgen/bgen/bgenVariable.py
@@ -43,6 +43,11 @@
             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."""