1.1 --- a/simplify.py Sun Jul 16 01:33:02 2006 +0200
1.2 +++ b/simplify.py Mon Jul 17 00:10:35 2006 +0200
1.3 @@ -88,8 +88,23 @@
1.4 return self.result
1.5
1.6 def visitClass(self, class_):
1.7 - result = Class(class_, name=class_.name, bases=class_.bases)
1.8 - result.code = self.dispatch(class_.code)
1.9 + structure = Class(name=hex(id(class_)), bases=class_.bases)
1.10 +
1.11 + subprogram = Subprogram(name=hex(id(class_)), acquire_locals=1, structure=structure, params=[], star=None, dstar=None)
1.12 + self.current_subprograms.append(subprogram)
1.13 +
1.14 + subprogram.code = self.dispatch(class_.code)
1.15 +
1.16 + self.current_subprograms.pop()
1.17 + self.subprograms.append(subprogram)
1.18 +
1.19 + # Make a definition of the class associating it with a name.
1.20 +
1.21 + result = Assign(class_)
1.22 + init = Invoke(expr=LoadRef(ref=subprogram), args=[], star=None, dstar=None)
1.23 + load = LoadRef(ref=structure)
1.24 + store = StoreName(name=class_.name)
1.25 + result.code = [init, load, store]
1.26 return result
1.27
1.28 def visitGetattr(self, getattr):
1.29 @@ -608,7 +623,7 @@
1.30 # Make a subprogram for the function and record it outside the main
1.31 # tree.
1.32
1.33 - subprogram = Subprogram(name=function.name, returns_value=1, star=None, dstar=None)
1.34 + subprogram = Subprogram(name=hex(id(function)), returns_value=1, star=None, dstar=None)
1.35 self.current_subprograms.append(subprogram)
1.36 subprogram.code = self.dispatch(function.code)
1.37 self.current_subprograms.pop()