26 lines
616 B
Python
26 lines
616 B
Python
import sys
|
|
class ListPrinter:
|
|
"""Print a fennec::list"""
|
|
|
|
class Iterator:
|
|
def __init__(self, head):
|
|
self.node = head
|
|
|
|
def __iter__(self):
|
|
return self
|
|
|
|
def __next__(self):
|
|
if self.node == sys.maxsize:
|
|
raise StopIteration
|
|
value = self.node['*data']
|
|
self.node = self.node['_data[next]']
|
|
return value
|
|
|
|
def __init__(self, val):
|
|
self.val = val
|
|
|
|
def to_string(self):
|
|
return "fennec::list"
|
|
|
|
def children(self):
|
|
return enumerate(self.Iterator(self.val['_data[_root]'])) |