/* $Id: CommandLine.h 15565 2013-01-07 14:27:05Z sloot $ $URL: https://ilk.uvt.nl/svn/trunk/sources/Timbl6/include/timbl/CommandLine.h $ Copyright (c) 1998 - 2013 ILK - Tilburg University CLiPS - University of Antwerp This file is part of timbl timbl is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. timbl is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see . For questions and suggestions, see: http://ilk.uvt.nl/software.html or send mail to: timbl@uvt.nl */ #ifndef TIMBL_COMMANDLINE_H #define TIMBL_COMMANDLINE_H #include #include namespace Timbl { class CL_item { friend std::ostream& operator<<( std::ostream&, const CL_item& ); public: CL_item( const std::string& s, const std::string& o ): opt_word(s), option( o ), mood( false ), longOpt(true) {}; CL_item( char c, const std::string& o, bool m=false ): option( o ), mood( m ), longOpt(false){ opt_word = c; }; CL_item( const CL_item& in ): opt_word( in.opt_word ), option(in.option), mood(in.mood), longOpt(in.longOpt){ }; CL_item& operator=( const CL_item& ); bool Mood() const { return mood; }; char OptChar() const { return opt_word[0]; }; const std::string& OptWord() const { return opt_word; }; const std::string& Option() const { return option; }; bool isLong() const { return longOpt; }; bool getMood() const { return mood; }; private: std::string opt_word; std::string option; bool mood; bool longOpt; }; // typedef std::list CommandLine; class CL_Options { friend std::ostream& operator<<( std::ostream&, const CL_Options& ); public: CL_Options( const int, const char * const * ); CL_Options( const std::string& ); ~CL_Options(); bool Present( const char ) const; bool Find( const char, std::string&, bool& ) const; bool Find( const std::string&, std::string& ) const; bool Delete( const char, bool = false ); bool Delete( const std::string& ); void Add( const char, const std::string&, bool ); void Add( const std::string&, const std::string& ); std::list Opts; void Split_Command_Line( const int, const char * const * ); private: CL_Options( const CL_Options& ); CL_Options& operator=( const CL_Options& ); }; } #endif