#ifndef __PLASP_APP__COMMON_OPTIONS_H #define __PLASP_APP__COMMON_OPTIONS_H #include #include #include #include #include #include //////////////////////////////////////////////////////////////////////////////////////////////////// // // Common Options // //////////////////////////////////////////////////////////////////////////////////////////////////// namespace po = boost::program_options; //////////////////////////////////////////////////////////////////////////////////////////////////// class OptionException : public pddl::Exception { public: using Exception::Exception; }; //////////////////////////////////////////////////////////////////////////////////////////////////// po::options_description basicOptions(); po::options_description outputOptions(); po::options_description parserOptions(); po::positional_options_description parserPositionalOptions(); //////////////////////////////////////////////////////////////////////////////////////////////////// struct BasicOptions { bool help = false; bool version = false; bool warningsAsErrors = false; }; //////////////////////////////////////////////////////////////////////////////////////////////////// struct OutputOptions { colorlog::ColorStream::ColorPolicy colorPolicy = colorlog::ColorStream::ColorPolicy::Auto; colorlog::Priority logPriority = colorlog::Priority::Info; }; //////////////////////////////////////////////////////////////////////////////////////////////////// struct ParserOptions { std::vector inputFiles; pddl::Mode parsingMode = pddl::Mode::Strict; plasp::Language::Type language = plasp::Language::Type::Automatic; }; //////////////////////////////////////////////////////////////////////////////////////////////////// BasicOptions parseBasicOptions(const po::variables_map &variablesMap); OutputOptions parseOutputOptions(const po::variables_map &variablesMap); ParserOptions parseParserOptions(const po::variables_map &variablesMap); //////////////////////////////////////////////////////////////////////////////////////////////////// #endif