xref: /inferno-os/module/html.m (revision 46439007cf417cbd9ac8049bb4122c890097a0fa)
1*46439007SCharles.ForsythHTML: module
2*46439007SCharles.Forsyth{
3*46439007SCharles.Forsyth	PATH:		con "/dis/lib/html.dis";
4*46439007SCharles.Forsyth
5*46439007SCharles.Forsyth	Lex: adt
6*46439007SCharles.Forsyth	{
7*46439007SCharles.Forsyth		tag:		int;
8*46439007SCharles.Forsyth		text:		string;	# text in Data, attribute text in tag
9*46439007SCharles.Forsyth		attr:		list of Attr;
10*46439007SCharles.Forsyth	};
11*46439007SCharles.Forsyth
12*46439007SCharles.Forsyth	Attr: adt
13*46439007SCharles.Forsyth	{
14*46439007SCharles.Forsyth		name:	string;
15*46439007SCharles.Forsyth		value:	string;
16*46439007SCharles.Forsyth	};
17*46439007SCharles.Forsyth
18*46439007SCharles.Forsyth	# sorted in lexical order; used as array indices
19*46439007SCharles.Forsyth	Notfound,
20*46439007SCharles.Forsyth	Ta, Taddress, Tapplet, Tarea, Tatt_footer, Tb,
21*46439007SCharles.Forsyth		Tbase, Tbasefont, Tbig, Tblink, Tblockquote, Tbody,
22*46439007SCharles.Forsyth		Tbq, Tbr, Tcaption, Tcenter, Tcite, Tcode, Tcol, Tcolgroup,
23*46439007SCharles.Forsyth		Tdd, Tdfn, Tdir, Tdiv, Tdl, Tdt, Tem,
24*46439007SCharles.Forsyth		Tfont, Tform, Tframe, Tframeset,
25*46439007SCharles.Forsyth		Th1, Th2, Th3, Th4, Th5, Th6, Thead, Thr, Thtml, Ti, Timg,
26*46439007SCharles.Forsyth		Tinput, Tisindex, Titem, Tkbd, Tli, Tlink, Tmap, Tmenu,
27*46439007SCharles.Forsyth		Tmeta, Tnobr, Tnoframes, Tol, Toption, Tp, Tparam, Tpre,
28*46439007SCharles.Forsyth		Tq, Tsamp, Tscript, Tselect, Tsmall, Tstrike, Tstrong,
29*46439007SCharles.Forsyth		Tstyle, Tsub, Tsup, Tt, Ttable, Ttbody, Ttd, Ttextarea, Ttextflow, Ttfoot, Tth,
30*46439007SCharles.Forsyth		Tthead, Ttitle, Ttr, Ttt, Tu, Tul, Tvar
31*46439007SCharles.Forsyth			: con iota;
32*46439007SCharles.Forsyth	RBRA: con 1000;
33*46439007SCharles.Forsyth	Data: con 2000;
34*46439007SCharles.Forsyth	Latin1, UTF8: con iota;	# charsets
35*46439007SCharles.Forsyth
36*46439007SCharles.Forsyth	lex:		fn(b: array of byte, charset: int, keepnls: int): array of ref Lex;
37*46439007SCharles.Forsyth	attrvalue:	fn(attr: list of Attr, name: string): (int, string);
38*46439007SCharles.Forsyth	globalattr:	fn(html: array of ref Lex, tag: int, attr: string): (int, string);
39*46439007SCharles.Forsyth	isbreak:	fn(h: array of ref Lex, i: int): int;
40*46439007SCharles.Forsyth	lex2string:	fn(l: ref Lex): string;
41*46439007SCharles.Forsyth};
42