# HG changeset patch
# User paulb@localhost.localdomain
# Date 1163544105 -3600
# Node ID 358247608f6b4e39f95fded073512a76b3ddfc6d
# Parent 3468ff9574a1cf85d17263280bce0c9c2fdd42aa
Added logical operators.
diff -r 3468ff9574a1 -r 358247608f6b viewer.py
--- a/viewer.py Tue Nov 14 23:40:13 2006 +0100
+++ b/viewer.py Tue Nov 14 23:41:45 2006 +0100
@@ -180,15 +180,16 @@
"""
A browsing visitor for AST nodes.
- Covered: AssAttr, AssList, AssName, AssTuple, Assign, AugAssign, Break,
+ Covered: And, AssAttr, AssList, AssName, AssTuple, Assign, AugAssign, Break,
CallFunc, Class, Compare, Const, Continue, Dict, Discard, For,
- Function, Getattr, If, Keyword, Lambda, List, Module, Name, Pass, Raise, Return, Slice,
- Stmt, Subscript, Tuple, While.
+ Function, Getattr, If, Keyword, Lambda, List, Module, Name, Not,
+ Or, Pass, Raise, Return, Slice, Stmt, Subscript, Tuple, While.
- Missing: And, Add, Assert, Backquote, Bitand, Bitor, Bitxor, Decorators, Div,
- Ellipsis, Exec, FloorDiv, From, Global, Import, Invert, LeftShift, ListComp, ListCompFor,
- ListCompIf, Mod, Mul, Not, Or, Power, Print, Printnl, RightShift, Sliceobj,
- Sub, TryExcept, TryFinally, UnaryAdd, UnarySub, Yield.
+ Missing: Add, Assert, Backquote, Bitand, Bitor, Bitxor, Decorators, Div,
+ Ellipsis, Exec, FloorDiv, From, Global, Import, Invert, LeftShift,
+ ListComp, ListCompFor, ListCompIf, Mod, Mul, Not, Or, Power, Print,
+ Printnl, RightShift, Sliceobj, Sub, TryExcept, TryFinally,
+ UnaryAdd, UnarySub, Yield.
"""
def __init__(self, stream):
@@ -469,6 +470,16 @@
# Expressions.
+ def visitAnd(self, node):
+ self.stream.write("\n")
+ first = 1
+ for n in node.nodes:
+ if not first:
+ self._keyword("and")
+ self.dispatch(n)
+ first = 0
+ self.stream.write("")
+
def visitAssAttr(self, node):
self.stream.write("\n")
self.dispatch(node.expr)
@@ -594,6 +605,22 @@
raise ValueError, node
self._name(node.name)
+ def visitNot(self, node):
+ self.stream.write("\n")
+ self._keyword("not")
+ self.dispatch(node.expr)
+ self.stream.write("")
+
+ def visitOr(self, node):
+ self.stream.write("\n")
+ first = 1
+ for n in node.nodes:
+ if not first:
+ self._keyword("or")
+ self.dispatch(n)
+ first = 0
+ self.stream.write("")
+
def visitSlice(self, node):
self.stream.write("\n")
self.dispatch(node.expr)