1.1 --- a/viewer.py Tue Nov 14 23:40:13 2006 +0100
1.2 +++ b/viewer.py Tue Nov 14 23:41:45 2006 +0100
1.3 @@ -180,15 +180,16 @@
1.4 """
1.5 A browsing visitor for AST nodes.
1.6
1.7 - Covered: AssAttr, AssList, AssName, AssTuple, Assign, AugAssign, Break,
1.8 + Covered: And, AssAttr, AssList, AssName, AssTuple, Assign, AugAssign, Break,
1.9 CallFunc, Class, Compare, Const, Continue, Dict, Discard, For,
1.10 - Function, Getattr, If, Keyword, Lambda, List, Module, Name, Pass, Raise, Return, Slice,
1.11 - Stmt, Subscript, Tuple, While.
1.12 + Function, Getattr, If, Keyword, Lambda, List, Module, Name, Not,
1.13 + Or, Pass, Raise, Return, Slice, Stmt, Subscript, Tuple, While.
1.14
1.15 - Missing: And, Add, Assert, Backquote, Bitand, Bitor, Bitxor, Decorators, Div,
1.16 - Ellipsis, Exec, FloorDiv, From, Global, Import, Invert, LeftShift, ListComp, ListCompFor,
1.17 - ListCompIf, Mod, Mul, Not, Or, Power, Print, Printnl, RightShift, Sliceobj,
1.18 - Sub, TryExcept, TryFinally, UnaryAdd, UnarySub, Yield.
1.19 + Missing: Add, Assert, Backquote, Bitand, Bitor, Bitxor, Decorators, Div,
1.20 + Ellipsis, Exec, FloorDiv, From, Global, Import, Invert, LeftShift,
1.21 + ListComp, ListCompFor, ListCompIf, Mod, Mul, Not, Or, Power, Print,
1.22 + Printnl, RightShift, Sliceobj, Sub, TryExcept, TryFinally,
1.23 + UnaryAdd, UnarySub, Yield.
1.24 """
1.25
1.26 def __init__(self, stream):
1.27 @@ -469,6 +470,16 @@
1.28
1.29 # Expressions.
1.30
1.31 + def visitAnd(self, node):
1.32 + self.stream.write("<span class='and'>\n")
1.33 + first = 1
1.34 + for n in node.nodes:
1.35 + if not first:
1.36 + self._keyword("and")
1.37 + self.dispatch(n)
1.38 + first = 0
1.39 + self.stream.write("</span>")
1.40 +
1.41 def visitAssAttr(self, node):
1.42 self.stream.write("<span class='assattr'>\n")
1.43 self.dispatch(node.expr)
1.44 @@ -594,6 +605,22 @@
1.45 raise ValueError, node
1.46 self._name(node.name)
1.47
1.48 + def visitNot(self, node):
1.49 + self.stream.write("<span class='not'>\n")
1.50 + self._keyword("not")
1.51 + self.dispatch(node.expr)
1.52 + self.stream.write("</span>")
1.53 +
1.54 + def visitOr(self, node):
1.55 + self.stream.write("<span class='or'>\n")
1.56 + first = 1
1.57 + for n in node.nodes:
1.58 + if not first:
1.59 + self._keyword("or")
1.60 + self.dispatch(n)
1.61 + first = 0
1.62 + self.stream.write("</span>")
1.63 +
1.64 def visitSlice(self, node):
1.65 self.stream.write("<span class='slice'>\n")
1.66 self.dispatch(node.expr)