Compilation works for all XPath queries from the core specified in the thesis
[tatoo.git] / src / test.ml
index cba40e0..1c0ac39 100644 (file)
     only the first line of XPath_querie_file is read 
 *)
 
+open Format
 
-let doc =
+let doc () =
   let fd = open_in Sys.argv.(1) in
   let d = Tree.load_xml_file fd in
-  close_in fd; d
-
+  close_in fd;
+  fprintf err_formatter "Parse Tree OK ! ";
+  d
 
 
-let query = 
+let query () 
   let arg2 = Sys.argv.(2) in
   if arg2 = "-f"
   then  let fq = open_in Sys.argv.(3) in
        let q = XPath.parse_file fq in
-       close_in fq; q
-  else XPath.parse_string arg2
-
-open Format
-
-let build_asta () =
+       close_in fq;
+       fprintf err_formatter "Parse query OK ! ";
+       q
+  else let q = XPath.parse_string arg2 in
+       fprintf err_formatter "Parse query OK ! ";
+       q
+
+let build_asta query =
   let asta = Compil.trans query in
-  fprintf err_formatter "COMPIL OK\n";
+  fprintf err_formatter "Compil OK !\n";
   asta
 
 let () =
-  fprintf err_formatter "Query: %a\n%!" XPath.Ast.print query;
-  fprintf err_formatter "Asta: %a\n%!" Asta.print (build_asta());
-  fprintf err_formatter "Document:\n%!";
-  Tree.print_xml stderr doc (Tree.root doc);
+  let query = query () in
+  let doc = doc () in
+  let asta = build_asta query in
+  fprintf err_formatter "@[<v 0> ##### Query #####@.      %a@]@ "
+    XPath.Ast.print query;
+  Asta.print err_formatter asta;
+  fprintf err_formatter "@[<v 0> ##### Doc #####@.%a@]@ "
+    Tree.print_xml doc (Tree.root doc);
   exit 0