X-Git-Url: http://git.nguyen.vg/gitweb/?a=blobdiff_plain;f=src%2Ftest.ml;h=3216e71712a84f4a22f5a802f49856cbae62da9e;hb=cd87d0f43eb81563fd303875ff4c83fe382ea99f;hp=770d4c52e84ec9d0d962ddb05a6c28e8c9a94290;hpb=cba2938d929fd5119b1491686ddc224d5af618c6;p=tatoo.git diff --git a/src/test.ml b/src/test.ml index 770d4c5..3216e71 100644 --- a/src/test.ml +++ b/src/test.ml @@ -13,25 +13,47 @@ (* *) (***********************************************************************) +(* + Time-stamp: +*) + +(** use: xml_file "XPath querie" + or : xml_file -f XPath_querie_file + only the first line of XPath_querie_file is read +*) + +module F = Auto.Formula +module A = Auto.Ata +module X = Xpath.Compile -module F = Formula (* to force ocaml build to add Formula to the dependency chain even if we don't use it yet*) let doc = let fd = open_in Sys.argv.(1) in - let d = Tree.load_xml_file fd in + let d = Tree.Naive.load_xml_file fd in close_in fd; d +let query = + let arg2 = Sys.argv.(2) in + Xpath.Parser.parse (Ulexing.from_latin1_string arg2) -let query = XPath.parse Sys.argv.(2) +let auto = + Xpath.Compile.path query open Format let () = - fprintf err_formatter "Query: %a\n%!" XPath.Ast.print query; - fprintf err_formatter "Document:\n%!"; - Tree.print_xml stderr doc (Tree.root doc); - exit 0 + fprintf err_formatter "Query: %a\n%!" Xpath.Ast.print_path query; + fprintf err_formatter "Automata: %a\n%!" Auto.Ata.print auto; + fprintf err_formatter "Evaluating automaton:\n%!"; + let module Naive = Auto.Eval.Make(Tree.Naive) in + let results = Naive.eval auto doc (Tree.Naive.root doc) in + List.iter (fun n -> + Tree.Naive.print_xml stderr doc n; + flush stderr; + output_string stderr "\n-------------------\n"; + ) results +