X-Git-Url: http://git.nguyen.vg/gitweb/?a=blobdiff_plain;f=src%2Ftest.ml;h=935023d35fe3c8166135cdd7a2f2a7f999cc676f;hb=881ebcb1df7335560c8715ec673980158f6ee585;hp=770d4c52e84ec9d0d962ddb05a6c28e8c9a94290;hpb=cba2938d929fd5119b1491686ddc224d5af618c6;p=tatoo.git diff --git a/src/test.ml b/src/test.ml index 770d4c5..935023d 100644 --- a/src/test.ml +++ b/src/test.ml @@ -14,24 +14,53 @@ (***********************************************************************) -module F = Formula -(* to force ocaml build to add Formula to the dependency chain even if - we don't use it yet*) +(** use: xml_file "XPath querie" + or : xml_file -f XPath_querie_file + only the first line of XPath_querie_file is read +*) -let doc = +open Format + +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 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 + else let q = XPath.parse_string arg2 in + fprintf err_formatter "Parse query OK ! "; + q -let query = XPath.parse Sys.argv.(2) +let build_asta query = + let asta = Compil.trans query in + fprintf err_formatter "Compil OK ! "; + asta -open Format +let compute_run doc query = + let run = Run.compute doc query in + fprintf err_formatter "Run OK ! \n"; + run let () = - fprintf err_formatter "Query: %a\n%!" XPath.Ast.print query; - fprintf err_formatter "Document:\n%!"; + let doc = doc () in + let query = query () in + let asta = build_asta query in + let run = compute_run doc asta in + 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; + Run.print err_formatter run; exit 0 -