X-Git-Url: http://git.nguyen.vg/gitweb/?p=tatoo.git;a=blobdiff_plain;f=tools%2Fsplit_path.ml;fp=tools%2Fsplit_path.ml;h=65a93cb2b7871c91a98f56d8348458b0ffd7e1cb;hp=0000000000000000000000000000000000000000;hb=f7a43114461b09d79c94a0da51ffbe1aea43dc55;hpb=13a9a0ab8988f32b0c654ddc1192236a028a20d9 diff --git a/tools/split_path.ml b/tools/split_path.ml new file mode 100644 index 0000000..65a93cb --- /dev/null +++ b/tools/split_path.ml @@ -0,0 +1,30 @@ +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 () +