Add more tests (broken, needs a refactoring of the build script)
[tatoo.git] / tools / split_path.ml
diff --git a/tools/split_path.ml b/tools/split_path.ml
new file mode 100644 (file)
index 0000000..65a93cb
--- /dev/null
@@ -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 ()
+