Charles.Forsyth20061220965a0ca19 years agoHistory
79 lines · 1.6 KB · Objective-C
RawDownload
Xml: module {	PATH: con "/dis/lib/xml.dis";	Item: adt {		fileoffset:	int;		pick {		Tag =>			name:	string;			attrs:		Attributes;		Text =>			ch:		string;			ws1, ws2: int;		Process =>			target:	string;			data:		string;		Doctype =>			name:	string;			public:	int;			params:	list of string;		Stylesheet =>			attrs:		Attributes;		Error =>			loc:		Locator;			msg:		string;		}	}; 	Locator: adt {		line:				int;		systemid:			string;		publicid:			string;	}; 	Attribute: adt {		name:			string;		value:			string;	}; 	Attributes: adt {		attrs:			list of Attribute; 		all:			fn(a: self Attributes): list of Attribute;		get:			fn(a: self Attributes, name: string): string;	}; 	Mark: adt {		estack:	list of string;		line:		int;		offset:	int;		readdepth:	int; 		str:		fn(m: self ref Mark): string;		}; 	Parser: adt {		in:		ref Bufio->Iobuf;		eof:		int;		lastnl:	int;		estack:	list of string;		loc:		Locator;		warning:	chan of (Locator, string);		errormsg:	string;		actdepth:	int;		readdepth:	int;		fileoffset:	int;		preelem:	string;		ispre:	int; 		next:		fn(p: self ref Parser): ref Item;		up:		fn(p: self ref Parser);		down:	fn(p: self ref Parser);		mark:	fn(p: self ref Parser): ref Mark;		atmark:	fn(p: self ref Parser, m: ref Mark): int;		goto:	fn(p: self ref Parser, m: ref Mark);		str2mark:	fn(p: self ref Parser, s: string): ref Mark;	};	init:	fn(): string;	open: fn(f: string, warning: chan of (Locator, string), preelem: string): (ref Parser, string);	fopen:	fn(f: ref Bufio->Iobuf, srcname: string, warning: chan of (Locator, string), preelem: string): (ref Parser, string);};