From: Lucca Hirschi Date: Fri, 29 Jun 2012 08:28:27 +0000 (+0200) Subject: With -f, we can read the XPath query in a file. X-Git-Tag: Core~26 X-Git-Url: http://git.nguyen.vg/gitweb/?p=tatoo.git;a=commitdiff_plain;h=e2dce9a8858c17d907ddecc34cd939905a73f0cc With -f, we can read the XPath query in a file. --- diff --git a/src/test.ml b/src/test.ml index 770d4c5..465e409 100644 --- a/src/test.ml +++ b/src/test.ml @@ -14,6 +14,11 @@ (***********************************************************************) +(** use: xml_file "XPath querie" + or : xml_file -f XPath_querie_file + only the first line of XPath_querie_file is read +*) + module F = Formula (* to force ocaml build to add Formula to the dependency chain even if we don't use it yet*) @@ -25,7 +30,13 @@ let doc = -let query = XPath.parse Sys.argv.(2) +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 diff --git a/src/xPath.ml b/src/xPath.ml index cb3393f..7ebc135 100644 --- a/src/xPath.ml +++ b/src/xPath.ml @@ -366,6 +366,9 @@ END *) - let parse = Gram.parse_string query (Ulexer.Loc.mk "") + let parse_string = Gram.parse_string query (Ulexer.Loc.mk "") + let parse_file fd = parse_string (input_line fd) + end -let parse = Parser.parse +let parse_string = Parser.parse_string +let parse_file = Parser.parse_file diff --git a/src/xPath.mli b/src/xPath.mli index 44935c3..afb4c39 100644 --- a/src/xPath.mli +++ b/src/xPath.mli @@ -46,4 +46,5 @@ sig end -val parse : string -> Ast.path +val parse_string : string -> Ast.path +val parse_file : in_channel -> Ast.path