diff --git a/wcclparser/main.cpp b/wcclparser/main.cpp index 37c910c441e0ec79fe6457f0a3801f3b881a9f8f..4ba829ed1e231b203b1dd8f77458aa746c84b050 100644 --- a/wcclparser/main.cpp +++ b/wcclparser/main.cpp @@ -2,8 +2,10 @@ #include <libwccl/values/strset.h> #include <libwccl/parser/Parser.h> +#include <libcorpus2/tagsetmanager.h> #include <boost/bind.hpp> +#include <boost/program_options.hpp> #include <antlr/MismatchedTokenException.hpp> // ---------------------------------------------------------------------------- @@ -120,9 +122,40 @@ bool process_line(const std::string& line, Parser& parser) return false; } -int main() +int main(int argc, char** argv) { - Corpus2::Tagset tagset; + std::string tagset_load = "kipi"; + bool quiet = false; + using boost::program_options::value; + + boost::program_options::options_description desc("Allowed options"); + desc.add_options() + ("tagset,t", value(&tagset_load), + "Tagset to use\n") + ("quiet,q", value(&quiet)->zero_tokens(), + "Suppress messages\n") + ("help,h", "Show help") + ; + boost::program_options::variables_map vm; + boost::program_options::positional_options_description p; + p.add("tagset", -1); + + try { + boost::program_options::store( + boost::program_options::command_line_parser(argc, argv) + .options(desc).positional(p).run(), vm); + } catch (boost::program_options::error& e) { + std::cerr << e.what() << "\n"; + return 2; + } + boost::program_options::notify(vm); + + if (vm.count("help")) { + std::cout << desc << "\n"; + return 1; + } + + const Corpus2::Tagset& tagset = Corpus2::get_named_tagset(tagset_load); Parser parser(tagset); if (system("clear")) {