--- /dev/null
+let parse q =
+ let p = Xpath.Parser.parse (Ulexing.from_utf8_string q) in
+ match p with
+ [ _ ] ->
+ List.map (fun p ->
+ let steps =
+ match p with
+ Xpath.Ast.Absolute l
+ | Xpath.Ast.Relative l -> l
+ in
+ let nl =
+ List.map (fun s ->
+ let _ = Format.flush_str_formatter () in
+ Xpath.Ast.print_step Format.str_formatter s;
+ Format.flush_str_formatter()) steps
+ in
+ nl) p
+ | _ -> let _ = Format.flush_str_formatter () in
+ Xpath.Ast.print_path Format.str_formatter p;
+ [[ Format.flush_str_formatter() ]]
+
+let main () =
+ if Array.length Sys.argv <> 2 then exit 1
+ else
+ let l = parse Sys.argv.(1) in
+ List.iter (fun s -> Printf.printf "'%s' " s) (List.hd l);
+ Printf.printf "\n%!"
+
+let () = main ()
+