node.py 562 B

12345678910111213141516171819202122232425262728
  1. # vim: set fileencoding=utf-8 :
  2. class Node(object):
  3. def __init__(self, label, *nodes):
  4. self.label, self.nodes = label, nodes
  5. def __getitem__(self, n):
  6. return self.nodes[n]
  7. def __setitem__(self, n, node):
  8. self.nodes[n] = node
  9. def __iter__(self):
  10. return iter(self.nodes)
  11. def __len__(self):
  12. return len(self.nodes)
  13. def title(self):
  14. return str(self.label)
  15. class Leaf(object):
  16. def __init__(self, label):
  17. self.label = label
  18. def title(self):
  19. return str(self.label)