From 4a616ed2ee563776e12071afd2b3dbf8a318ab7b Mon Sep 17 00:00:00 2001 From: ilor <kailoran@gmail.com> Date: Wed, 8 Dec 2010 11:43:26 +0100 Subject: [PATCH] Add query file loading to wcclparser --- wcclparser/main.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/wcclparser/main.cpp b/wcclparser/main.cpp index 3d2d786..2ef8976 100644 --- a/wcclparser/main.cpp +++ b/wcclparser/main.cpp @@ -153,6 +153,7 @@ int main(int argc, char** argv) std::string tagset_load = "kipi"; std::string query = ""; std::string sentence_load = ""; + std::string query_load = ""; std::string position = "0"; bool quiet = false; using boost::program_options::value; @@ -165,6 +166,8 @@ int main(int argc, char** argv) "Sentence to load (XCES)\n") ("position,p", value(&position), "Position in the sentence to use, 'all' iterates through the sentence\n") + ("query-file,f", value(&query_load), + "Run query from file (disables interactive mode)\n") ("query,Q", value(&query), "Query to run (disables interactive mode)\n") ("quiet,q", value(&quiet)->zero_tokens(), @@ -213,6 +216,16 @@ int main(int argc, char** argv) if (!query.empty()) { process_line(query, parser, sc, position == "all"); return 0; + } else if (!query_load.empty()) { + std::ifstream qf(query_load.c_str()); + if (qf.good()) { + std::stringstream ss; + ss << qf.rdbuf(); + process_line(ss.str(), parser, sc, position == "all"); + return 0; + } else { + throw Wccl::FileNotFound(sentence_load, "", "Query file"); + } } boost::function<bool (const std::string&)> f; f = boost::bind(&process_line, _1, boost::ref(parser), boost::ref(sc), -- GitLab