+
+(*let xmarkup = "\005"
+let ymarkup = "\006"
+let regexp tag_cont = ident_letter | xml_digit | "_" | "-"
+let regexp tagname = ident_letter tag_cont*
+let regexp opentag = xmarkup tagname
+let regexp closetag = xmarkup "/" tagname ymarkup
+let regexp attribute = tagname "=" qstring
+
+let rec to_xy =
+ lexer
+ | closetag -> xmarkup ^ ymarkup ^ xmarkup ^ to_xy lexbuf
+ | opentag ->
+ let tag =
+ Ulexing.utf8_sub_lexeme lexbuf 1
+ (Ulexing.lexeme_length lexbuf - 1) in
+ xmarkup ^ ymarkup ^ tag ^ to_xy_inner lexbuf
+ | eof -> ""
+ | _ -> let lexeme = Ulexing.utf8_lexeme lexbuf in
+ prerr_endline ("matched " ^ lexeme); lexeme ^ to_xy lexbuf
+
+and to_xy_inner =
+ lexer
+ | utf8_blank+ -> to_xy_inner lexbuf
+ | attribute -> let lexeme = Ulexing.utf8_lexeme lexbuf in
+ ymarkup ^ lexeme ^ to_xy_inner lexbuf
+ | ">" -> xmarkup ^ to_xy lexbuf
+ | eof -> ""
+ | _ -> to_xy lexbuf
+;;
+
+let to_xy s = to_xy (Ulexing.from_utf8_string s)*)