1.1 --- a/simplify.py Sat Oct 07 01:49:01 2006 +0200
1.2 +++ b/simplify.py Sat Oct 07 01:49:50 2006 +0200
1.3 @@ -74,6 +74,10 @@
1.4 self.current_subprograms = [] # Current subprograms being processed.
1.5 self.builtins = builtins # Whether the builtins are being processed.
1.6
1.7 + # Convenience attributes.
1.8 +
1.9 + self.subnames = {}
1.10 +
1.11 # For compiler package mechanisms.
1.12
1.13 self.visitor = self
1.14 @@ -109,7 +113,7 @@
1.15 resulting program nodes.
1.16 """
1.17
1.18 - result = Module(module)
1.19 + result = Module(module, name="module")
1.20 module_code = self.dispatch(module.node)
1.21
1.22 # NOTE: Constant initialisation necessary for annotation but perhaps
1.23 @@ -431,7 +435,7 @@
1.24 subprogram.code = results
1.25
1.26 self.current_subprograms.pop()
1.27 - self.subprograms.append(subprogram)
1.28 + self.subprograms.append(subprogram); self.subnames[subprogram.full_name] = subprogram
1.29
1.30 # Make an invocation of the subprogram.
1.31
1.32 @@ -491,7 +495,7 @@
1.33 subprogram.code = results
1.34
1.35 self.current_subprograms.pop()
1.36 - self.subprograms.append(subprogram)
1.37 + self.subprograms.append(subprogram); self.subnames[subprogram.full_name] = subprogram
1.38
1.39 # Make an invocation of the subprogram.
1.40
1.41 @@ -553,7 +557,7 @@
1.42 subprogram.code = results
1.43
1.44 self.current_subprograms.pop()
1.45 - self.subprograms.append(subprogram)
1.46 + self.subprograms.append(subprogram); self.subnames[subprogram.full_name] = subprogram
1.47
1.48 # Make an invocation of the subprogram.
1.49
1.50 @@ -883,7 +887,7 @@
1.51 subprogram.code = self.dispatch(class_.code) + [Return(class_)]
1.52
1.53 self.current_subprograms.pop()
1.54 - self.subprograms.append(subprogram)
1.55 + self.subprograms.append(subprogram); self.subnames[subprogram.full_name] = subprogram
1.56
1.57 # Make a definition of the class associating it with a name.
1.58
1.59 @@ -951,7 +955,7 @@
1.60 subprogram.params = params
1.61 subprogram.star = star
1.62 subprogram.dstar = dstar
1.63 - self.subprograms.append(subprogram)
1.64 + self.subprograms.append(subprogram); self.subnames[subprogram.full_name] = subprogram
1.65
1.66 def visitFunction(self, function):
1.67
1.68 @@ -1038,7 +1042,7 @@
1.69 subprogram.code = [test]
1.70
1.71 self.current_subprograms.pop()
1.72 - self.subprograms.append(subprogram)
1.73 + self.subprograms.append(subprogram); self.subnames[subprogram.full_name] = subprogram
1.74
1.75 # Make an invocation of the subprogram.
1.76
1.77 @@ -1102,8 +1106,8 @@
1.78
1.79 # Finish the subprogram definition.
1.80
1.81 - self.subprograms.append(subprogram)
1.82 self.current_subprograms.pop()
1.83 + self.subprograms.append(subprogram); self.subnames[subprogram.full_name] = subprogram
1.84
1.85 # Obtain an iterator for the sequence involved.
1.86 # Then, make an invocation of the subprogram.