Buf : module {
PATH : con "/dis/lib/buf.dis";
EOF : con -1;
Data : adt {
txt : string;
ptr : int;
seek: fn(b: self ref Data, n, where: int): int;
offset: fn(b: self ref Data): int;
# read: fn(b: self ref Data, a: array of byte, n: int): int;
# write: fn(b: self ref Data, a: array of byte, n: int): int;
# getb: fn(b: self ref Data): int;
getc: fn(b: self ref Data): int;
gets: fn(b: self ref Data, sep: int): string;
# gett: fn(b: self ref Data, sep: string): string;
# ungetb: fn(b: self ref Data): int;
ungetc: fn(b: self ref Data): int;
# putb: fn(b: self ref Data, b: byte): int;
# putc: fn(b: self ref Data, c: int): int;
# puts: fn(b: self ref Data, s: string): int;
# flush: fn(b: self ref Data): int;
# close: fn(b: self ref Data);
};
new : fn(s : string) : ref Data;
};
|