type HTML_convert_type = string * int;;

let HTML_cvt =
[ ("&lt;",`<`);
  ("&gt;",`>`);
  ("&amp;";`&`);
  ("&quot;";`"`);
  ("&AElig;";`A`);
  ("&Aacute;";`A`);
  ("&Agrave;";`A`);
  ("&Aring;";`A`);
  ("&Atilde;";`A`);
  ("&Auml";`A`);
  ("&Ccedil";`C`);
  ("";` `);
];;

let HTML_extchar Str =
  let rec search_loop List =
    match List with
      [] -> ` `
    | x::y -> if fst x = Str 
              then (snd x)
              else search_loop y
  in
    search_loop HTML_cvt
;;

(*
&ETH; 
   capital Eth, Icelandic 
&Eacute; 
   capital E, acute accent 
&Ecirc; 
   capital E, circumflex accent 
&Egrave; 
   capital E, grave accent 
&Euml; 
   capital E, dieresis or umlaut mark 
&Iacute; 
   capital I, acute accent 
&Icirc; 
   capital I, circumflex accent 
&Igrave; 
   capital I, grave accent 
&Iuml; 
   capital I, dieresis or umlaut mark 
&Ntilde; 
   capital N, tilde 
&Oacute; 
   capital O, acute accent 
&Ocirc; 
   capital O, circumflex accent 
&Ograve; 
   capital O, grave accent 
&Oslash; 
   capital O, slash 
&Otilde; 
   capital O, tilde 
&Ouml; 
   capital O, dieresis or umlaut mark 
&THORN; 
   capital THORN, Icelandic 
&Uacute; 
   capital U, acute accent 
&Ucirc; 
   capital U, circumflex accent 
&Ugrave; 
   capital U, grave accent 
&Uuml; 
   capital U, dieresis or umlaut mark 
&Yacute; 
   capital Y, acute accent 
&aacute; 
   small a, acute accent 
&acirc; 
   small a, circumflex accent 
&aelig; 
   small ae diphthong (ligature) 
&agrave; 
   small a, grave accent 
&aring; 
   small a, ring 
&atilde; 
   small a, tilde 
&auml; 
   small a, dieresis or umlaut mark 
&ccedil; 
   small c, cedilla 
&eacute; 
   small e, acute accent 
&ecirc; 
   small e, circumflex accent 
&egrave; 
   small e, grave accent 
&eth; 
   small eth, Icelandic 
&euml; 
   small e, dieresis or umlaut mark 
&iacute; 
   small i, acute accent 
&icirc; 
   small i, circumflex accent 
&igrave; 
   small i, grave accent 
&iuml; 
   small i, dieresis or umlaut mark 
&ntilde; 
   small n, tilde 
&oacute; 
   small o, acute accent 
&ocirc; 
   small o, circumflex accent 
&ograve; 
   small o, grave accent 
&oslash; 
   small o, slash 
&otilde; 
   small o, tilde 
&ouml; 
   small o, dieresis or umlaut mark 
&szlig; 
   small sharp s, German (sz ligature) 
&thorn; 
   small thorn, Icelandic 
&uacute; 
   small u, acute accent 
&ucirc; 
   small u, circumflex accent 
&ugrave; 
   small u, grave accent 
&uuml; 
   small u, dieresis or umlaut mark 
&yacute; 
   small y, acute accent 
&yuml; 
   small y, dieresis or umlaut mark 

*)