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 };