RosettaCodeData/Task/Object-serialization/E/object-serialization-1.e

22 lines
595 B
Plaintext

def makeEvent(time :int) {
return def event {
to __printOn(out) { out.print(`@@$time`) }
to __optUncall() { return [makeEvent, "run", [time]] }
to getTime() { return time }
}
}
def makeArrival(time :int, what :any, position :int) {
return def arrival extends makeEvent(time) {
to __printOn(out) {
out.print(`$what to $position $super`)
}
to __optUncall() {
return [makeArrival, "run", [time, what, position]]
}
to getWhat() { return what }
to getPosition() { return position }
}
}