lav

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

html.ha (507B)


      1 use fmt;
      2 use strings;
      3 use format::xml;
      4 
      5 export type block = struct {
      6 	tag: str,
      7 	attrs: xml::atribute,
      8 	content: (str | *block)
      9 };
     10 
     11 export fn mktree(par: *xml::parser) (str | *block) = {
     12 	return match (xml::scan(par)) {
     13 	case let start: xml::elementstart =>
     14 		yield &block {
     15 			tag = start,
     16 			content = match (xml::scan(par)) {
     17 			case let text: xml::text => yield text;
     18 			case let nested: xml::elementstart => yield mktree(par);
     19 			case let attr
     20 			}
     21 		};
     22 	case let text: xml::text => yield text;
     23 	};
     24 };