# vim: set fileencoding=utf-8 : class Node(object): def __init__(self, value, *nodes): super(Node, self).__init__() 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 '' % (str(self.value), str(self.nodes)) def title(self): return str(self.value) class Leaf(Node): def __init__(self, value): super(Leaf, self).__init__(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)