From e2dce9a8858c17d907ddecc34cd939905a73f0cc Mon Sep 17 00:00:00 2001 From: Lucca Hirschi Date: Fri, 29 Jun 2012 10:28:27 +0200 Subject: [PATCH] With -f, we can read the XPath query in a file. --- src/test.ml | 13 ++++++++++++- src/xPath.ml | 7 +++++-- src/xPath.mli | 3 ++- 3 files changed, 19 insertions(+), 4 deletions(-) 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 -- 2.17.1