forsyth20121205-174063a80cc13 years agoHistory
67 lines · 1.3 KB · Objective-C
RawDownload
Xpointers: module{	PATH: con "/dis/lib/w3c/xpointers.dis"; 	One, Ole, Oge, Omul, Odiv, Omod, Oand, Oor, Oneg,	Onodetype, Onametest, Ofilter, Opath: con 'A'+iota; 	# axis types	Aancestor,	Aancestor_or_self,	Aattribute,	Achild,	Adescendant,	Adescendant_or_self,	Afollowing,	Afollowing_sibling,	Anamespace,	Aparent,	Apreceding,	Apreceding_sibling,	Aself: con iota; 	Xstep: adt {		axis:	int;	# Aancestor, ... (above)		op:	int;	# Onametest or Onodetype		ns:	string;		name:	string;		arg:	string;	# optional parameter to processing-instruction		preds:	cyclic list of ref Xpath; 		text:	fn(nil: self ref Xstep): string;		axisname:	fn(i: int): string;	}; 	Xpath: adt {		pick{		E =>			op: int;			l, r: cyclic ref Xpath;		Fn =>			ns:	string;			name:	string;			args:	cyclic list of ref Xpath;		Var =>			ns: string;			name: string;		Path =>			abs:	int;			steps:	list of ref Xstep;		Int =>			val: big;		Real =>			val: real;		Str =>			s: string;		}		text:	fn(nil: self ref Xpath): string;	}; 	init:	fn();	framework:	fn(s: string): (string, list of (string, string, string), string); 	# predefined schemes	element:	fn(s: string): (string, list of int, string);	xmlns:	fn(s: string): (string, string, string);	xpointer:	fn(s: string): (ref Xpath, string);};