let rec parse_string (print_tokens:bool) (s:string):Xml.xml =
try
let lexbuf = Lexing.from_string s in
let parse = Xml_right_parser.main (lexer print_tokens) in
parse lexbuf
with
|_ ->
match print_tokens with
|false ->
let _ = IO.print_to_stderr ("Xml_right failed, read the following tokens from string:") in
parse_string true s
|true -> raise (Error "parsing failed")