1.1 --- a/viewer.py Mon Oct 16 23:39:35 2006 +0200
1.2 +++ b/viewer.py Tue Oct 17 20:10:07 2006 +0200
1.3 @@ -238,12 +238,19 @@
1.4 for param, default in subprogram.params:
1.5 if not first:
1.6 self.stream.write(",\n")
1.7 - self._name_start(param)
1.8 - if hasattr(subprogram, "paramtypes"):
1.9 - self._popup_start()
1.10 - self._types_list(subprogram.paramtypes[param])
1.11 - self._popup_end()
1.12 - self._name_end()
1.13 + self._parameter(subprogram, param)
1.14 + first = 0
1.15 + if subprogram.star is not None:
1.16 + if not first:
1.17 + self.stream.write(", *\n")
1.18 + param, default = subprogram.star
1.19 + self._parameter(subprogram, param)
1.20 + first = 0
1.21 + if subprogram.dstar is not None:
1.22 + if not first:
1.23 + self.stream.write(", **\n")
1.24 + param, default = subprogram.dstar
1.25 + self._parameter(subprogram, param)
1.26 first = 0
1.27 self.stream.write(")")
1.28 self.stream.write(":\n")
1.29 @@ -271,6 +278,30 @@
1.30
1.31 # Expressions.
1.32
1.33 + def visitCallFunc(self, node):
1.34 + invocation = node._node
1.35 + self.stream.write("<span class='callfunc'>\n")
1.36 + self.dispatch(node.node)
1.37 + self.stream.write("(")
1.38 + first = 1
1.39 + for arg in node.args:
1.40 + if not first:
1.41 + self.stream.write(",\n")
1.42 + self.dispatch(arg)
1.43 + first = 0
1.44 + if node.star_args is not None:
1.45 + if not first:
1.46 + self.stream.write(", *\n")
1.47 + self.dispatch(node.star_args)
1.48 + first = 0
1.49 + if node.dstar_args is not None:
1.50 + if not first:
1.51 + self.stream.write(", **\n")
1.52 + self.dispatch(node.dstar_args)
1.53 + first = 0
1.54 + self.stream.write(")\n")
1.55 + self.stream.write("</span>\n")
1.56 +
1.57 def visitTuple(self, node):
1.58 self.stream.write("<span class='tuple'>\n")
1.59 self.stream.write("(")
1.60 @@ -361,6 +392,14 @@
1.61 self.dispatch(n)
1.62 first = 0
1.63
1.64 + def _parameter(self, subprogram, param):
1.65 + self._name_start(param)
1.66 + if hasattr(subprogram, "paramtypes"):
1.67 + self._popup_start()
1.68 + self._types_list(subprogram.paramtypes[param])
1.69 + self._popup_end()
1.70 + self._name_end()
1.71 +
1.72 def _name(self, name):
1.73 self.stream.write("<span class='name'>%s</span>\n" % name)
1.74