forsyth20121205-174063a80cc13 years agoHistory
41 lines · 1.0 KB · Objective-C
RawDownload
Sexprs: module{	PATH:	con "/dis/lib/sexprs.dis"; 	Sexp: adt {		pick {		String =>			s: string;			hint:	string;		Binary =>			data:	array of byte;			hint: string;		List =>			l:	cyclic list of ref Sexp;		} 		read:	fn[T](b: T): (ref Sexp, string) for {				T =>					getb:	fn(nil: self T): int;					ungetb:	fn(nil: self T): int;					offset:	fn(nil: self T): big;				};		parse:	fn(s: string): (ref Sexp, string, string);		unpack:	fn(a: array of byte): (ref Sexp, array of byte, string);		text:	fn(e: self ref Sexp): string;		packedsize:	fn(e: self ref Sexp): int;		pack:	fn(e: self ref Sexp): array of byte;		b64text:	fn(e: self ref Sexp): string; 		islist:	fn(e: self ref Sexp): int;		els:	fn(e: self ref Sexp): list of ref Sexp;		op:	fn(e: self ref Sexp): string;		args:	fn(e: self ref Sexp): list of ref Sexp;		eq:	fn(e: self ref Sexp, t: ref Sexp): int;		copy:	fn(e: self ref Sexp): ref Sexp;		asdata:	fn(e: self ref Sexp): array of byte;		astext:	fn(e: self ref Sexp): string;	}; 	init:	fn();};