| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- # vim: set fileencoding=utf-8 :
- class Node(object):
- def __init__(self, value, *nodes):
- self.value, self.nodes = value, list(nodes)
- def __getitem__(self, n):
- return self.nodes[n]
- def __setitem__(self, n, node):
- self.nodes[n] = node
- def __iter__(self):
- return iter(self.nodes)
- def __len__(self):
- return len(self.nodes)
- def __eq__(self, node):
- return isinstance(node, Node) \
- and self.value == node.value and self.nodes == node.nodes
- #def __repr__(self):
- # return repr(self.value)
- def __str__(self):
- return '<Node value=%s nodes=%s>' % (str(self.value), str(self.nodes))
- def title(self):
- return str(self.value)
- class Leaf(Node):
- def __init__(self, value):
- self.value = value
- self.nodes = None
- def __len__(self):
- return len(str(self.value))
- def __repr__(self):
- return repr(self.value)
- def __str__(self):
- return str(self.value)
|