class LocalList
pri next : LocalList;
pri Data : Object;
meth SetNext =^ (val n: ObjFieldList ·
next:= n;
)
end
meth GetNext =^ (res n: ObjFieldList ·
n:= next;
)
end
meth GetData =^ (res d: Object ·
d:= Data;
)
end
meth SetData =^ (val d: Object ·
Data:= d;
)
end
meth GetLocal =^ (val count: Int;
res d: object ·
var next: LocalList ·
if [] Count = 1 ®
self.GetData(d);
[] Count > 1 ®
self.GetNext(next);
next.GetLocal(count-1, d);
fi
end
)
end
meth PutLocal =^ (vres Tail: LocalList;
val count: Int;
val d: object ·
var next: LocalList ·
if [] Count = 1 ®
Tail.setData(d);
[] Count > 1 ®
Tail.GetNext(next);
next.PutLocal(next, count-1, d);
Tail.SetNext(next);
fi
end
)
end
meth AppendLocal =^ (vres Tail: LocalList; val d: object ·
var next: LocalList ·
Tail.GetNext(next);
If [] next <> null ®
next.AppendLocal(next, d);
[] next = null ®
next:= New LocalList;
next.SetData(d)
fi
Tail.SetNext(next);
end
)
end
end