Mercurial > meta
diff html.urs @ 9:8eaaca74a64c
Import HTML parser
author | Adam Chlipala <adam@chlipala.net> |
---|---|
date | Wed, 15 Dec 2010 09:27:46 -0500 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/html.urs Wed Dec 15 09:27:46 2010 -0500 @@ -0,0 +1,29 @@ +(** Safe HTML parsing *) + +con attribute = fn t => {Nam : string, + Parse : string -> option t} + +con tag = fn ts => {Nam : string, + Attributes : $(map attribute ts), + Folder : folder ts, + Construct : ctx ::: {Unit} -> [[Body] ~ ctx] => $ts + -> xml ([Body] ++ ctx) [] [] -> xml ([Body] ++ ctx) [] []} + +val tag : use ::: {Type} -> ignore ::: {Type} -> [use ~ ignore] => folder use -> string + -> $(map attribute use) + -> (ctx ::: {Unit} -> [[Body] ~ ctx] => Basis.tag (use ++ ignore) ([Body] ++ ctx) ([Body] ++ ctx) [] []) + -> tag use + +val simpleTag : ignore ::: {Type} -> string -> bodyTag ignore -> tag [] +val simpleTag' : use ::: {Type} -> ignore ::: {Type} -> [use ~ ignore] => folder use + -> string -> bodyTag (use ++ ignore) -> $(map attribute use) -> tag use + +val url : string -> attribute url + +val format : tags ::: {{Type}} -> folder tags -> $(map tag tags) + -> ctx ::: {Unit} -> [[Body] ~ ctx] => string + -> Parse.parse (xml ([Body] ++ ctx) [] []) + +val b : tag [] +val i : tag [] +val a : tag [Href = url]