X-Git-Url: http://git.nguyen.vg/gitweb/?a=blobdiff_plain;f=src%2Ftest.ml;h=c6bdaa1c98ddd67682749ec4a033441d5ae62388;hb=d4e704decf927be044d72a6fe4314aea3c8125a5;hp=e6cd725eb629f3de3475d6ba9a431e9547d8dbff;hpb=c4a733a7ffde6dfbc66b02124e204e3945ed33a4;p=tatoo.git diff --git a/src/test.ml b/src/test.ml index e6cd725..c6bdaa1 100644 --- a/src/test.ml +++ b/src/test.ml @@ -14,9 +14,9 @@ (***********************************************************************) -(** use: xml_file "XPath querie" - or : xml_file -f XPath_querie_file - only the first line of XPath_querie_file is read +(** use: [./test xml_file "XPath querie"] + or : [./test xml_file -f XPath_querie_file] + only the first line of [XPath_querie_file] is read *) open Format @@ -33,10 +33,10 @@ 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; - fprintf err_formatter "Parse query OK ! "; - q + let q = XPath.parse_file fq in + 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 @@ -55,13 +55,22 @@ let () = let doc = doc () in let query = query () in let asta = build_asta query in - let run = compute_run doc asta in + let run = compute_run doc asata in + let selected_nodes = Run.selected_nodes doc asta in + Format.pp_set_margin err_formatter 80; fprintf err_formatter "@[##### Query #####@. %a@]\n" XPath.Ast.print query; output_string stderr "\n##### Doc #####\n"; Tree.print_xml stderr doc (Tree.root doc); output_string stderr "\n"; Asta.print err_formatter asta; - fprintf err_formatter "@[##### Run #####@. %a@]\n" - Run.print run; + Run.print err_formatter run; + output_string stderr "\n # Doc with positions: \n"; + Tree.print_xml_preorder stderr doc (Tree.root doc); + let rec print_selec fmt l = match l with + | [x] -> fprintf fmt "%s" (string_of_int x) + | x :: tl -> fprintf fmt "%s" ((string_of_int x)^"; ");print_selec fmt tl + | [] -> fprintf fmt "%s" "ø" in + fprintf err_formatter "@.@. # Selected nodes: {%a}@." + print_selec selected_nodes; exit 0