diff options
Diffstat (limited to 'src/tclap/.svn/text-base')
26 files changed, 0 insertions, 5916 deletions
diff --git a/src/tclap/.svn/text-base/Arg.h.svn-base b/src/tclap/.svn/text-base/Arg.h.svn-base deleted file mode 100755 index 3d44c85..0000000 --- a/src/tclap/.svn/text-base/Arg.h.svn-base +++ /dev/null @@ -1,672 +0,0 @@ -// -*- Mode: c++; c-basic-offset: 4; tab-width: 4; -*- - -/****************************************************************************** - * - *  file:  Arg.h - * - *  Copyright (c) 2003, Michael E. Smoot . - *  Copyright (c) 2004, Michael E. Smoot, Daniel Aarno . - *  All rights reverved. - * - *  See the file COPYING in the top directory of this distribution for - *  more information. - * - *  THE SOFTWARE IS PROVIDED _AS IS_, WITHOUT WARRANTY OF ANY KIND, EXPRESS - *  OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - *  THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - *  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - *  DEALINGS IN THE SOFTWARE. - * - *****************************************************************************/ - - -#ifndef TCLAP_ARGUMENT_H -#define TCLAP_ARGUMENT_H - -#ifdef HAVE_CONFIG_H -#include <config.h> -#else -#define HAVE_SSTREAM -#endif - -#include <string> -#include <vector> -#include <list> -#include <iostream> -#include <iomanip> -#include <cstdio> - -#if defined(HAVE_SSTREAM) -#include <sstream> -typedef std::istringstream istringstream; -#elif defined(HAVE_STRSTREAM) -#include <strstream> -typedef std::istrstream istringstream; -#else -#error "Need a stringstream (sstream or strstream) to compile!" -#endif - -#include <tclap/ArgException.h> -#include <tclap/Visitor.h> -#include <tclap/CmdLineInterface.h> -#include <tclap/ArgTraits.h> -#include <tclap/StandardTraits.h> - -namespace TCLAP { - -/** - * A virtual base class that defines the essential data for all arguments. - * This class, or one of its existing children, must be subclassed to do - * anything. - */ -class Arg -{ -	private: - -		/** -		 * Indicates whether the rest of the arguments should be ignored. -		 */ -		static bool& ignoreRestRef() { static bool ign = false; return ign; } - -		/** -		 * The delimiter that separates an argument flag/name from the -		 * value. -		 */ -		static char& delimiterRef() { static char delim = ' '; return delim; } - -	protected: - -		/** -		 * The single char flag used to identify the argument. -		 * This value (preceded by a dash {-}), can be used to identify -		 * an argument on the command line.  The _flag can be blank, -		 * in fact this is how unlabeled args work.  Unlabeled args must -		 * override appropriate functions to get correct handling. Note -		 * that the _flag does NOT include the dash as part of the flag. -		 */ -		std::string _flag; - -		/** -		 * A single work namd indentifying the argument. -		 * This value (preceded by two dashed {--}) can also be used -		 * to identify an argument on the command line.  Note that the -		 * _name does NOT include the two dashes as part of the _name. The -		 * _name cannot be blank. -		 */ -		std::string _name; - -		/** -		 * Description of the argument. -		 */ -		std::string _description; - -		/** -		 * Indicating whether the argument is required. -		 */ -		bool _required; - -		/** -		 * Label to be used in usage description.  Normally set to -		 * "required", but can be changed when necessary. -		 */ -		std::string _requireLabel; - -		/** -		 * Indicates whether a value is required for the argument. -		 * Note that the value may be required but the argument/value -		 * combination may not be, as specified by _required. -		 */ -		bool _valueRequired; - -		/** -		 * Indicates whether the argument has been set. -		 * Indicates that a value on the command line has matched the -		 * name/flag of this argument and the values have been set accordingly. -		 */ -		bool _alreadySet; - -		/** -		 * A pointer to a vistitor object. -		 * The visitor allows special handling to occur as soon as the -		 * argument is matched.  This defaults to NULL and should not -		 * be used unless absolutely necessary. -		 */ -		Visitor* _visitor; - -		/** -		 * Whether this argument can be ignored, if desired. -		 */ -		bool _ignoreable; - -		/** -		 * Indicates that the arg was set as part of an XOR and not on the -		 * command line. -		 */ -		bool _xorSet; - -		bool _acceptsMultipleValues; - -		/** -		 * Performs the special handling described by the Vistitor. -		 */ -		void _checkWithVisitor() const; - -		/** -		 * Primary constructor. YOU (yes you) should NEVER construct an Arg -		 * directly, this is a base class that is extended by various children -		 * that are meant to be used.  Use SwitchArg, ValueArg, MultiArg, -		 * UnlabeledValueArg, or UnlabeledMultiArg instead. -		 * -		 * \param flag - The flag identifying the argument. -		 * \param name - The name identifying the argument. -		 * \param desc - The description of the argument, used in the usage. -		 * \param req - Whether the argument is required. -		 * \param valreq - Whether the a value is required for the argument. -		 * \param v - The visitor checked by the argument. Defaults to NULL. -		 */ - 		Arg( const std::string& flag, -			 const std::string& name, -			 const std::string& desc, -			 bool req, -			 bool valreq, -			 Visitor* v = NULL ); - -	public: -		/** -		 * Destructor. -		 */ -		virtual ~Arg(); - -		/** -		 * Adds this to the specified list of Args. -		 * \param argList - The list to add this to. -		 */ -		virtual void addToList( std::list<Arg*>& argList ) const; - -		/** -		 * Begin ignoring arguments since the "--" argument was specified. -		 */ -		static void beginIgnoring() { ignoreRestRef() = true; } - -		/** -		 * Whether to ignore the rest. -		 */ -		static bool ignoreRest() { return ignoreRestRef(); } - -		/** -		 * The delimiter that separates an argument flag/name from the -		 * value. -		 */ -		static char delimiter() { return delimiterRef(); } - -		/** -		 * The char used as a place holder when SwitchArgs are combined. -		 * Currently set to the bell char (ASCII 7). -		 */ -		static char blankChar() { return (char)7; } - -		/** -		 * The char that indicates the beginning of a flag.  Currently '-'. -		 */ -		static char flagStartChar() { return '-'; } - -		/** -		 * The sting that indicates the beginning of a flag.  Currently "-". -		 * Should be identical to flagStartChar. -		 */ -		static const std::string flagStartString() { return "-"; } - -		/** -		 * The sting that indicates the beginning of a name.  Currently "--". -		 * Should be flagStartChar twice. -		 */ -		static const std::string nameStartString() { return "--"; } - -		/** -		 * The name used to identify the ignore rest argument. -		 */ -		static const std::string ignoreNameString() { return "ignore_rest"; } - -		/** -		 * Sets the delimiter for all arguments. -		 * \param c - The character that delimits flags/names from values. -		 */ -		static void setDelimiter( char c ) { delimiterRef() = c; } - -		/** -		 * Pure virtual method meant to handle the parsing and value assignment -		 * of the string on the command line. -		 * \param i - Pointer the the current argument in the list. -		 * \param args - Mutable list of strings. What is -		 * passed in from main. -		 */ -		virtual bool processArg(int *i, std::vector<std::string>& args) = 0; - -		/** -		 * Operator ==. -		 * Equality operator. Must be virtual to handle unlabeled args. -		 * \param a - The Arg to be compared to this. -		 */ -		virtual bool operator==(const Arg& a) const; - -		/** -		 * Returns the argument flag. -		 */ -		const std::string& getFlag() const; - -		/** -		 * Returns the argument name. -		 */ -		const std::string& getName() const; - -		/** -		 * Returns the argument description. -		 */ -		std::string getDescription() const; - -		/** -		 * Indicates whether the argument is required. -		 */ -		virtual bool isRequired() const; - -		/** -		 * Sets _required to true. This is used by the XorHandler. -		 * You really have no reason to ever use it. -		 */ -		void forceRequired(); - -		/** -		 * Sets the _alreadySet value to true.  This is used by the XorHandler. -		 * You really have no reason to ever use it. -		 */ -		void xorSet(); - -		/** -		 * Indicates whether a value must be specified for argument. -		 */ -		bool isValueRequired() const; - -		/** -		 * Indicates whether the argument has already been set.  Only true -		 * if the arg has been matched on the command line. -		 */ -		bool isSet() const; - -		/** -		 * Indicates whether the argument can be ignored, if desired. -		 */ -		bool isIgnoreable() const; - -		/** -		 * A method that tests whether a string matches this argument. -		 * This is generally called by the processArg() method.  This -		 * method could be re-implemented by a child to change how -		 * arguments are specified on the command line. -		 * \param s - The string to be compared to the flag/name to determine -		 * whether the arg matches. -		 */ -		virtual bool argMatches( const std::string& s ) const; - -		/** -		 * Returns a simple string representation of the argument. -		 * Primarily for debugging. -		 */ -		virtual std::string toString() const; - -		/** -		 * Returns a short ID for the usage. -		 * \param valueId - The value used in the id. -		 */ -		virtual std::string shortID( const std::string& valueId = "val" ) const; - -		/** -		 * Returns a long ID for the usage. -		 * \param valueId - The value used in the id. -		 */ -		virtual std::string longID( const std::string& valueId = "val" ) const; - -		/** -		 * Trims a value off of the flag. -		 * \param flag - The string from which the flag and value will be -		 * trimmed. Contains the flag once the value has been trimmed. -		 * \param value - Where the value trimmed from the string will -		 * be stored. -		 */ -		virtual void trimFlag( std::string& flag, std::string& value ) const; - -		/** -		 * Checks whether a given string has blank chars, indicating that -		 * it is a combined SwitchArg.  If so, return true, otherwise return -		 * false. -		 * \param s - string to be checked. -		 */ -		bool _hasBlanks( const std::string& s ) const; - -		/** -		 * Sets the requireLabel. Used by XorHandler.  You shouldn't ever -		 * use this. -		 * \param s - Set the requireLabel to this value. -		 */ -		void setRequireLabel( const std::string& s ); - -		/** -		 * Used for MultiArgs and XorHandler to determine whether args -		 * can still be set. -		 */ -		virtual bool allowMore(); - -		/** -		 * Use by output classes to determine whether an Arg accepts -		 * multiple values. -		 */ -		virtual bool acceptsMultipleValues(); - -		/** -		 * Clears the Arg object and allows it to be reused by new -		 * command lines. -		 */ -		 virtual void reset(); -}; - -/** - * Typedef of an Arg list iterator. - */ -typedef std::list<Arg*>::iterator ArgListIterator; - -/** - * Typedef of an Arg vector iterator. - */ -typedef std::vector<Arg*>::iterator ArgVectorIterator; - -/** - * Typedef of a Visitor list iterator. - */ -typedef std::list<Visitor*>::iterator VisitorListIterator; - -/* - * Extract a value of type T from it's string representation contained - * in strVal. The ValueLike parameter used to select the correct - * specialization of ExtractValue depending on the value traits of T. - * ValueLike traits use operator>> to assign the value from strVal. - */ -template<typename T> void -ExtractValue(T &destVal, const std::string& strVal, ValueLike vl) -{ -    static_cast<void>(vl); // Avoid warning about unused vl -    std::istringstream is(strVal); - -    int valuesRead = 0; -    while ( is.good() ) { -	if ( is.peek() != EOF ) -#ifdef TCLAP_SETBASE_ZERO -	    is >> std::setbase(0) >> destVal; -#else -	    is >> destVal; -#endif -	else -	    break; - -	valuesRead++; -    } - -    if ( is.fail() ) -	throw( ArgParseException("Couldn't read argument value " -				 "from string '" + strVal + "'")); - - -    if ( valuesRead > 1 ) -	throw( ArgParseException("More than one valid value parsed from " -				 "string '" + strVal + "'")); - -} - -/* - * Extract a value of type T from it's string representation contained - * in strVal. The ValueLike parameter used to select the correct - * specialization of ExtractValue depending on the value traits of T. - * StringLike uses assignment (operator=) to assign from strVal. - */ -template<typename T> void -ExtractValue(T &destVal, const std::string& strVal, StringLike sl) -{ -    static_cast<void>(sl); // Avoid warning about unused sl -    SetString(destVal, strVal); -} - -////////////////////////////////////////////////////////////////////// -//BEGIN Arg.cpp -////////////////////////////////////////////////////////////////////// - -inline Arg::Arg(const std::string& flag, -         const std::string& name, -         const std::string& desc, -         bool req, -         bool valreq, -         Visitor* v) : -  _flag(flag), -  _name(name), -  _description(desc), -  _required(req), -  _requireLabel("required"), -  _valueRequired(valreq), -  _alreadySet(false), -  _visitor( v ), -  _ignoreable(true), -  _xorSet(false), -  _acceptsMultipleValues(false) -{ -	if ( _flag.length() > 1 ) -		throw(SpecificationException( -				"Argument flag can only be one character long", toString() ) ); - -	if ( _name != ignoreNameString() && -		 ( _flag == Arg::flagStartString() || -		   _flag == Arg::nameStartString() || -		   _flag == " " ) ) -		throw(SpecificationException("Argument flag cannot be either '" + -							Arg::flagStartString() + "' or '" + -							Arg::nameStartString() + "' or a space.", -							toString() ) ); - -	if ( ( _name.substr( 0, Arg::flagStartString().length() ) == Arg::flagStartString() ) || -		 ( _name.substr( 0, Arg::nameStartString().length() ) == Arg::nameStartString() ) || -		 ( _name.find( " ", 0 ) != std::string::npos ) ) -		throw(SpecificationException("Argument name begin with either '" + -							Arg::flagStartString() + "' or '" + -							Arg::nameStartString() + "' or space.", -							toString() ) ); - -} - -inline Arg::~Arg() { } - -inline std::string Arg::shortID( const std::string& valueId ) const -{ -	std::string id = ""; - -	if ( _flag != "" ) -		id = Arg::flagStartString() + _flag; -	else -		id = Arg::nameStartString() + _name; - -	if ( _valueRequired ) -		id += std::string( 1, Arg::delimiter() ) + "<" + valueId  + ">"; - -	if ( !_required ) -		id = "[" + id + "]"; - -	return id; -} - -inline std::string Arg::longID( const std::string& valueId ) const -{ -	std::string id = ""; - -	if ( _flag != "" ) -	{ -		id += Arg::flagStartString() + _flag; - -		if ( _valueRequired ) -			id += std::string( 1, Arg::delimiter() ) + "<" + valueId + ">"; - -		id += ",  "; -	} - -	id += Arg::nameStartString() + _name; - -	if ( _valueRequired ) -		id += std::string( 1, Arg::delimiter() ) + "<" + valueId + ">"; - -	return id; - -} - -inline bool Arg::operator==(const Arg& a) const -{ -	if ( ( _flag != "" && _flag == a._flag ) || _name == a._name) -		return true; -	else -		return false; -} - -inline std::string Arg::getDescription() const -{ -	std::string desc = ""; -	if ( _required ) -		desc = "(" + _requireLabel + ")  "; - -//	if ( _valueRequired ) -//		desc += "(value required)  "; - -	desc += _description; -	return desc; -} - -inline const std::string& Arg::getFlag() const { return _flag; } - -inline const std::string& Arg::getName() const { return _name; } - -inline bool Arg::isRequired() const { return _required; } - -inline bool Arg::isValueRequired() const { return _valueRequired; } - -inline bool Arg::isSet() const -{ -	if ( _alreadySet && !_xorSet ) -		return true; -	else -		return false; -} - -inline bool Arg::isIgnoreable() const { return _ignoreable; } - -inline void Arg::setRequireLabel( const std::string& s) -{ -	_requireLabel = s; -} - -inline bool Arg::argMatches( const std::string& argFlag ) const -{ -	if ( ( argFlag == Arg::flagStartString() + _flag && _flag != "" ) || -		 argFlag == Arg::nameStartString() + _name ) -		return true; -	else -		return false; -} - -inline std::string Arg::toString() const -{ -	std::string s = ""; - -	if ( _flag != "" ) -		s += Arg::flagStartString() + _flag + " "; - -	s += "(" + Arg::nameStartString() + _name + ")"; - -	return s; -} - -inline void Arg::_checkWithVisitor() const -{ -	if ( _visitor != NULL ) -		_visitor->visit(); -} - -/** - * Implementation of trimFlag. - */ -inline void Arg::trimFlag(std::string& flag, std::string& value) const -{ -	int stop = 0; -	for ( int i = 0; static_cast<unsigned int>(i) < flag.length(); i++ ) -		if ( flag[i] == Arg::delimiter() ) -		{ -			stop = i; -			break; -		} - -	if ( stop > 1 ) -	{ -		value = flag.substr(stop+1); -		flag = flag.substr(0,stop); -	} - -} - -/** - * Implementation of _hasBlanks. - */ -inline bool Arg::_hasBlanks( const std::string& s ) const -{ -	for ( int i = 1; static_cast<unsigned int>(i) < s.length(); i++ ) -		if ( s[i] == Arg::blankChar() ) -			return true; - -	return false; -} - -inline void Arg::forceRequired() -{ -	_required = true; -} - -inline void Arg::xorSet() -{ -	_alreadySet = true; -	_xorSet = true; -} - -/** - * Overridden by Args that need to added to the end of the list. - */ -inline void Arg::addToList( std::list<Arg*>& argList ) const -{ -	argList.push_front( const_cast<Arg*>(this) ); -} - -inline bool Arg::allowMore() -{ -	return false; -} - -inline bool Arg::acceptsMultipleValues() -{ -	return _acceptsMultipleValues; -} - -inline void Arg::reset() -{ -	_xorSet = false; -	_alreadySet = false; -} - -////////////////////////////////////////////////////////////////////// -//END Arg.cpp -////////////////////////////////////////////////////////////////////// - -} //namespace TCLAP - -#endif - diff --git a/src/tclap/.svn/text-base/ArgException.h.svn-base b/src/tclap/.svn/text-base/ArgException.h.svn-base deleted file mode 100755 index 3411aa9..0000000 --- a/src/tclap/.svn/text-base/ArgException.h.svn-base +++ /dev/null @@ -1,200 +0,0 @@ -// -*- Mode: c++; c-basic-offset: 4; tab-width: 4; -*- - -/******************************************************************************  - *  - *  file:  ArgException.h - *  - *  Copyright (c) 2003, Michael E. Smoot . - *  All rights reverved. - *  - *  See the file COPYING in the top directory of this distribution for - *  more information. - *   - *  THE SOFTWARE IS PROVIDED _AS IS_, WITHOUT WARRANTY OF ANY KIND, EXPRESS  - *  OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,  - *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL  - *  THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER  - *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING  - *  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER  - *  DEALINGS IN THE SOFTWARE.   - *   - *****************************************************************************/  - - -#ifndef TCLAP_ARG_EXCEPTION_H -#define TCLAP_ARG_EXCEPTION_H - -#include <string> -#include <exception> - -namespace TCLAP { - -/** - * A simple class that defines and argument exception.  Should be caught - * whenever a CmdLine is created and parsed. - */ -class ArgException : public std::exception -{ -	public: -	 -		/** -		 * Constructor. -		 * \param text - The text of the exception. -		 * \param id - The text identifying the argument source. -		 * \param td - Text describing the type of ArgException it is. -		 * of the exception. -		 */ -		ArgException( const std::string& text = "undefined exception",  -					  const std::string& id = "undefined", -					  const std::string& td = "Generic ArgException") -			: std::exception(),  -			  _errorText(text),  -			  _argId( id ),  -			  _typeDescription(td) -		{ }  -		 -		/** -		 * Destructor. -		 */ -		virtual ~ArgException() throw() { } - -		/** -		 * Returns the error text. -		 */ -		std::string error() const { return ( _errorText ); } - -		/** -		 * Returns the argument id. -		 */ -		std::string argId() const   -		{  -			if ( _argId == "undefined" ) -				return " "; -			else -				return ( "Argument: " + _argId );  -		} - -		/** -		 * Returns the arg id and error text.  -		 */ -		const char* what() const throw()  -		{ -			static std::string ex;  -			ex = _argId + " -- " + _errorText; -			return ex.c_str(); -		} - -		/** -		 * Returns the type of the exception.  Used to explain and distinguish -		 * between different child exceptions. -		 */ -		std::string typeDescription() const -		{ -			return _typeDescription;  -		} - - -	private: - -		/** -		 * The text of the exception message. -		 */ -		std::string _errorText; - -		/** -		 * The argument related to this exception. -		 */ -		std::string _argId; - -		/** -		 * Describes the type of the exception.  Used to distinguish -		 * between different child exceptions. -		 */ -		std::string _typeDescription; - -}; - -/** - * Thrown from within the child Arg classes when it fails to properly - * parse the argument it has been passed. - */ -class ArgParseException : public ArgException -{  -	public: -		/** -		 * Constructor. -		 * \param text - The text of the exception. -		 * \param id - The text identifying the argument source  -		 * of the exception. -		 */ -		ArgParseException( const std::string& text = "undefined exception",  -					       const std::string& id = "undefined" ) -			: ArgException( text,  -			                id,  -							std::string( "Exception found while parsing " ) +  -							std::string( "the value the Arg has been passed." )) -			{ } -}; - -/** - * Thrown from CmdLine when the arguments on the command line are not - * properly specified, e.g. too many arguments, required argument missing, etc. - */ -class CmdLineParseException : public ArgException -{ -	public: -		/** -		 * Constructor. -		 * \param text - The text of the exception. -		 * \param id - The text identifying the argument source  -		 * of the exception. -		 */ -		CmdLineParseException( const std::string& text = "undefined exception",  -					           const std::string& id = "undefined" ) -			: ArgException( text,  -			                id, -							std::string( "Exception found when the values ") + -							std::string( "on the command line do not meet ") + -							std::string( "the requirements of the defined ") + -							std::string( "Args." )) -		{ } -}; - -/** - * Thrown from Arg and CmdLine when an Arg is improperly specified, e.g.  - * same flag as another Arg, same name, etc. - */ -class SpecificationException : public ArgException -{ -	public: -		/** -		 * Constructor. -		 * \param text - The text of the exception. -		 * \param id - The text identifying the argument source  -		 * of the exception. -		 */ -		SpecificationException( const std::string& text = "undefined exception", -					            const std::string& id = "undefined" ) -			: ArgException( text,  -			                id, -							std::string("Exception found when an Arg object ")+ -							std::string("is improperly defined by the ") + -							std::string("developer." ))  -		{ } - -}; - -class ExitException { -public: -	ExitException(int estat) : _estat(estat) {} - -	int getExitStatus() const { return _estat; } - -private: -	int _estat; -}; - -} // namespace TCLAP - -#endif - diff --git a/src/tclap/.svn/text-base/ArgTraits.h.svn-base b/src/tclap/.svn/text-base/ArgTraits.h.svn-base deleted file mode 100755 index a89ed12..0000000 --- a/src/tclap/.svn/text-base/ArgTraits.h.svn-base +++ /dev/null @@ -1,81 +0,0 @@ -// -*- Mode: c++; c-basic-offset: 4; tab-width: 4; -*- - -/****************************************************************************** - * - *  file:  ArgTraits.h - * - *  Copyright (c) 2007, Daniel Aarno, Michael E. Smoot . - *  All rights reverved. - * - *  See the file COPYING in the top directory of this distribution for - *  more information. - * - *  THE SOFTWARE IS PROVIDED _AS IS_, WITHOUT WARRANTY OF ANY KIND, EXPRESS - *  OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - *  THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - *  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - *  DEALINGS IN THE SOFTWARE. - * - *****************************************************************************/ - -// This is an internal tclap file, you should probably not have to -// include this directly - -#ifndef TCLAP_ARGTRAITS_H -#define TCLAP_ARGTRAITS_H - -namespace TCLAP { - -// We use two empty structs to get compile type specialization -// function to work - -/** - * A value like argument value type is a value that can be set using - * operator>>. This is the default value type. - */ -struct ValueLike { -    typedef ValueLike ValueCategory; -}; - -/** - * A string like argument value type is a value that can be set using - * operator=(string). Usefull if the value type contains spaces which - * will be broken up into individual tokens by operator>>. - */ -struct StringLike {}; - -/** - * A class can inherit from this object to make it have string like - * traits. This is a compile time thing and does not add any overhead - * to the inherenting class. - */ -struct StringLikeTrait { -    typedef StringLike ValueCategory; -}; - -/** - * A class can inherit from this object to make it have value like - * traits. This is a compile time thing and does not add any overhead - * to the inherenting class. - */ -struct ValueLikeTrait { -    typedef ValueLike ValueCategory; -}; - -/** - * Arg traits are used to get compile type specialization when parsing - * argument values. Using an ArgTraits you can specify the way that - * values gets assigned to any particular type during parsing. The two - * supported types are string like and value like. - */ -template<typename T> -struct ArgTraits { -    typedef typename T::ValueCategory ValueCategory; -    //typedef ValueLike ValueCategory; -}; - -#endif - -} // namespace diff --git a/src/tclap/.svn/text-base/CmdLine.h.svn-base b/src/tclap/.svn/text-base/CmdLine.h.svn-base deleted file mode 100755 index 90d0e65..0000000 --- a/src/tclap/.svn/text-base/CmdLine.h.svn-base +++ /dev/null @@ -1,621 +0,0 @@ -// -*- Mode: c++; c-basic-offset: 4; tab-width: 4; -*- - -/****************************************************************************** - * - *  file:  CmdLine.h - * - *  Copyright (c) 2003, Michael E. Smoot . - *  Copyright (c) 2004, Michael E. Smoot, Daniel Aarno. - *  All rights reverved. - * - *  See the file COPYING in the top directory of this distribution for - *  more information. - * - *  THE SOFTWARE IS PROVIDED _AS IS_, WITHOUT WARRANTY OF ANY KIND, EXPRESS - *  OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - *  THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - *  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - *  DEALINGS IN THE SOFTWARE. - * - *****************************************************************************/ - -#ifndef TCLAP_CMDLINE_H -#define TCLAP_CMDLINE_H - -#include <tclap/SwitchArg.h> -#include <tclap/MultiSwitchArg.h> -#include <tclap/UnlabeledValueArg.h> -#include <tclap/UnlabeledMultiArg.h> - -#include <tclap/XorHandler.h> -#include <tclap/HelpVisitor.h> -#include <tclap/VersionVisitor.h> -#include <tclap/IgnoreRestVisitor.h> - -#include <tclap/CmdLineOutput.h> -#include <tclap/StdOutput.h> - -#include <tclap/Constraint.h> -#include <tclap/ValuesConstraint.h> - -#include <string> -#include <vector> -#include <list> -#include <iostream> -#include <iomanip> -#include <algorithm> -#include <stdlib.h> // Needed for exit(), which isn't defined in some envs. - -namespace TCLAP { - -template<typename T> void DelPtr(T ptr) -{ -	delete ptr; -} - -template<typename C> void ClearContainer(C &c) -{ -	typedef typename C::value_type value_type; -	std::for_each(c.begin(), c.end(), DelPtr<value_type>); -	c.clear(); -} - - -/** - * The base class that manages the command line definition and passes - * along the parsing to the appropriate Arg classes. - */ -class CmdLine : public CmdLineInterface -{ -	protected: - -		/** -		 * The list of arguments that will be tested against the -		 * command line. -		 */ -		std::list<Arg*> _argList; - -		/** -		 * The name of the program.  Set to argv[0]. -		 */ -		std::string _progName; - -		/** -		 * A message used to describe the program.  Used in the usage output. -		 */ -		std::string _message; - -		/** -		 * The version to be displayed with the --version switch. -		 */ -		std::string _version; - -		/** -		 * The number of arguments that are required to be present on -		 * the command line. This is set dynamically, based on the -		 * Args added to the CmdLine object. -		 */ -		int _numRequired; - -		/** -		 * The character that is used to separate the argument flag/name -		 * from the value.  Defaults to ' ' (space). -		 */ -		char _delimiter; - -		/** -		 * The handler that manages xoring lists of args. -		 */ -		XorHandler _xorHandler; - -		/** -		 * A list of Args to be explicitly deleted when the destructor -		 * is called.  At the moment, this only includes the three default -		 * Args. -		 */ -		std::list<Arg*> _argDeleteOnExitList; - -		/** -		 * A list of Visitors to be explicitly deleted when the destructor -		 * is called.  At the moment, these are the Vistors created for the -		 * default Args. -		 */ -		std::list<Visitor*> _visitorDeleteOnExitList; - -		/** -		 * Object that handles all output for the CmdLine. -		 */ -		CmdLineOutput* _output; - -		/** -		 * Should CmdLine handle parsing exceptions internally? -		 */ -		bool _handleExceptions; - -		/** -		 * Throws an exception listing the missing args. -		 */ -		void missingArgsException(); - -		/** -		 * Checks whether a name/flag string matches entirely matches -		 * the Arg::blankChar.  Used when multiple switches are combined -		 * into a single argument. -		 * \param s - The message to be used in the usage. -		 */ -		bool _emptyCombined(const std::string& s); - -		/** -		 * Perform a delete ptr; operation on ptr when this object is deleted. -		 */ -		void deleteOnExit(Arg* ptr); - -		/** -		 * Perform a delete ptr; operation on ptr when this object is deleted. -		 */ -		void deleteOnExit(Visitor* ptr); - -private: - -		/** -		 * Encapsulates the code common to the constructors -		 * (which is all of it). -		 */ -		void _constructor(); - - -		/** -		 * Is set to true when a user sets the output object. We use this so -		 * that we don't delete objects that are created outside of this lib. -		 */ -		bool _userSetOutput; - -		/** -		 * Whether or not to automatically create help and version switches. -		 */ -		bool _helpAndVersion; - -	public: - -		/** -		 * Command line constructor. Defines how the arguments will be -		 * parsed. -		 * \param message - The message to be used in the usage -		 * output. -		 * \param delimiter - The character that is used to separate -		 * the argument flag/name from the value.  Defaults to ' ' (space). -		 * \param version - The version number to be used in the -		 * --version switch. -		 * \param helpAndVersion - Whether or not to create the Help and -		 * Version switches. Defaults to true. -		 */ -		CmdLine(const std::string& message, -				const char delimiter = ' ', -				const std::string& version = "none", -				bool helpAndVersion = true); - -		/** -		 * Deletes any resources allocated by a CmdLine object. -		 */ -		virtual ~CmdLine(); - -		/** -		 * Adds an argument to the list of arguments to be parsed. -		 * \param a - Argument to be added. -		 */ -		void add( Arg& a ); - -		/** -		 * An alternative add.  Functionally identical. -		 * \param a - Argument to be added. -		 */ -		void add( Arg* a ); - -		/** -		 * Add two Args that will be xor'd.  If this method is used, add does -		 * not need to be called. -		 * \param a - Argument to be added and xor'd. -		 * \param b - Argument to be added and xor'd. -		 */ -		void xorAdd( Arg& a, Arg& b ); - -		/** -		 * Add a list of Args that will be xor'd.  If this method is used, -		 * add does not need to be called. -		 * \param xors - List of Args to be added and xor'd. -		 */ -		void xorAdd( std::vector<Arg*>& xors ); - -		/** -		 * Parses the command line. -		 * \param argc - Number of arguments. -		 * \param argv - Array of arguments. -		 */ -		void parse(int argc, const char * const * argv); - -		/** -		 * Parses the command line. -		 * \param args - A vector of strings representing the args. -		 * args[0] is still the program name. -		 */ -		void parse(std::vector<std::string>& args); - -		/** -		 * -		 */ -		CmdLineOutput* getOutput(); - -		/** -		 * -		 */ -		void setOutput(CmdLineOutput* co); - -		/** -		 * -		 */ -		std::string& getVersion(); - -		/** -		 * -		 */ -		std::string& getProgramName(); - -		/** -		 * -		 */ -		std::list<Arg*>& getArgList(); - -		/** -		 * -		 */ -		XorHandler& getXorHandler(); - -		/** -		 * -		 */ -		char getDelimiter(); - -		/** -		 * -		 */ -		std::string& getMessage(); - -		/** -		 * -		 */ -		bool hasHelpAndVersion(); - -		/** -		 * Disables or enables CmdLine's internal parsing exception handling. -		 * -		 * @param state Should CmdLine handle parsing exceptions internally? -		 */ -		void setExceptionHandling(const bool state); - -		/** -		 * Returns the current state of the internal exception handling. -		 * -		 * @retval true Parsing exceptions are handled internally. -		 * @retval false Parsing exceptions are propagated to the caller. -		 */ -		bool getExceptionHandling() const; - -		/** -		 * Allows the CmdLine object to be reused. -		 */ -		void reset(); - -}; - - -/////////////////////////////////////////////////////////////////////////////// -//Begin CmdLine.cpp -/////////////////////////////////////////////////////////////////////////////// - -inline CmdLine::CmdLine(const std::string& m, -			char delim, -			const std::string& v, -			bool help ) -: _progName("not_set_yet"), -  _message(m), -  _version(v), -  _numRequired(0), -  _delimiter(delim), -  _handleExceptions(true), -  _userSetOutput(false), -  _helpAndVersion(help) -{ -	_constructor(); -} - -inline CmdLine::~CmdLine() -{ -	ClearContainer(_argDeleteOnExitList); -	ClearContainer(_visitorDeleteOnExitList); - -	if ( !_userSetOutput ) { -		delete _output; -		_output = 0; -	} -} - -inline void CmdLine::_constructor() -{ -	_output = new StdOutput; - -	Arg::setDelimiter( _delimiter ); - -	Visitor* v; - -	if ( _helpAndVersion ) -	{ -		v = new HelpVisitor( this, &_output ); -		SwitchArg* help = new SwitchArg("h","help", -						"Displays usage information and exits.", -						false, v); -		add( help ); -		deleteOnExit(help); -		deleteOnExit(v); - -		v = new VersionVisitor( this, &_output ); -		SwitchArg* vers = new SwitchArg("","version", -					"Displays version information and exits.", -					false, v); -		add( vers ); -		deleteOnExit(vers); -		deleteOnExit(v); -	} - -	v = new IgnoreRestVisitor(); -	SwitchArg* ignore  = new SwitchArg(Arg::flagStartString(), -					   Arg::ignoreNameString(), -			   "Ignores the rest of the labeled arguments following this flag.", -					   false, v); -	add( ignore ); -	deleteOnExit(ignore); -	deleteOnExit(v); -} - -inline void CmdLine::xorAdd( std::vector<Arg*>& ors ) -{ -	_xorHandler.add( ors ); - -	for (ArgVectorIterator it = ors.begin(); it != ors.end(); it++) -	{ -		(*it)->forceRequired(); -		(*it)->setRequireLabel( "OR required" ); - -		add( *it ); -	} -} - -inline void CmdLine::xorAdd( Arg& a, Arg& b ) -{ -    std::vector<Arg*> ors; -    ors.push_back( &a ); -    ors.push_back( &b ); -	xorAdd( ors ); -} - -inline void CmdLine::add( Arg& a ) -{ -	add( &a ); -} - -inline void CmdLine::add( Arg* a ) -{ -	for( ArgListIterator it = _argList.begin(); it != _argList.end(); it++ ) -		if ( *a == *(*it) ) -			throw( SpecificationException( -			       	"Argument with same flag/name already exists!", -					a->longID() ) ); - -	a->addToList( _argList ); - -	if ( a->isRequired() ) -		_numRequired++; -} - - -inline void CmdLine::parse(int argc, const char * const * argv) -{ -		// this step is necessary so that we have easy access to -		// mutable strings. -		std::vector<std::string> args; -		for (int i = 0; i < argc; i++) -			args.push_back(argv[i]); - -		parse(args); -} - -inline void CmdLine::parse(std::vector<std::string>& args) -{ -	bool shouldExit = false; -	int estat = 0; - -	try { -		_progName = args.front(); -		args.erase(args.begin()); - -		int requiredCount = 0; - -		for (int i = 0; static_cast<unsigned int>(i) < args.size(); i++) { -			bool matched = false; -			for (ArgListIterator it = _argList.begin(); -				 it != _argList.end(); it++) { -				if ( (*it)->processArg( &i, args ) ) -					{ -						requiredCount += _xorHandler.check( *it ); -						matched = true; -						break; -					} -			} - -			// checks to see if the argument is an empty combined -			// switch and if so, then we've actually matched it -			if ( !matched && _emptyCombined( args[i] ) ) -				matched = true; - -			if ( !matched && !Arg::ignoreRest() ) -				throw(CmdLineParseException("Couldn't find match " -											"for argument", -											args[i])); -		} - -		if ( requiredCount < _numRequired ) -			missingArgsException(); - -		if ( requiredCount > _numRequired ) -			throw(CmdLineParseException("Too many arguments!")); - -	} catch ( ArgException& e ) { -		// If we're not handling the exceptions, rethrow. -		if ( !_handleExceptions) { -			throw; -		} - -		try { -			_output->failure(*this,e); -		} catch ( ExitException &ee ) { -			estat = ee.getExitStatus(); -			shouldExit = true; -		} -	} catch (ExitException &ee) { -		// If we're not handling the exceptions, rethrow. -		if ( !_handleExceptions) { -			throw; -		} - -		estat = ee.getExitStatus(); -		shouldExit = true; -	} - -	if (shouldExit) -		exit(estat); -} - -inline bool CmdLine::_emptyCombined(const std::string& s) -{ -	if ( s.length() > 0 && s[0] != Arg::flagStartChar() ) -		return false; - -	for ( int i = 1; static_cast<unsigned int>(i) < s.length(); i++ ) -		if ( s[i] != Arg::blankChar() ) -			return false; - -	return true; -} - -inline void CmdLine::missingArgsException() -{ -		int count = 0; - -		std::string missingArgList; -		for (ArgListIterator it = _argList.begin(); it != _argList.end(); it++) -		{ -			if ( (*it)->isRequired() && !(*it)->isSet() ) -			{ -				missingArgList += (*it)->getName(); -				missingArgList += ", "; -				count++; -			} -		} -		missingArgList = missingArgList.substr(0,missingArgList.length()-2); - -		std::string msg; -		if ( count > 1 ) -			msg = "Required arguments missing: "; -		else -			msg = "Required argument missing: "; - -		msg += missingArgList; - -		throw(CmdLineParseException(msg)); -} - -inline void CmdLine::deleteOnExit(Arg* ptr) -{ -	_argDeleteOnExitList.push_back(ptr); -} - -inline void CmdLine::deleteOnExit(Visitor* ptr) -{ -	_visitorDeleteOnExitList.push_back(ptr); -} - -inline CmdLineOutput* CmdLine::getOutput() -{ -	return _output; -} - -inline void CmdLine::setOutput(CmdLineOutput* co) -{ -	_userSetOutput = true; -	_output = co; -} - -inline std::string& CmdLine::getVersion() -{ -	return _version; -} - -inline std::string& CmdLine::getProgramName() -{ -	return _progName; -} - -inline std::list<Arg*>& CmdLine::getArgList() -{ -	return _argList; -} - -inline XorHandler& CmdLine::getXorHandler() -{ -	return _xorHandler; -} - -inline char CmdLine::getDelimiter() -{ -	return _delimiter; -} - -inline std::string& CmdLine::getMessage() -{ -	return _message; -} - -inline bool CmdLine::hasHelpAndVersion() -{ -	return _helpAndVersion; -} - -inline void CmdLine::setExceptionHandling(const bool state) -{ -	_handleExceptions = state; -} - -inline bool CmdLine::getExceptionHandling() const -{ -	return _handleExceptions; -} - -inline void CmdLine::reset() -{ -	for( ArgListIterator it = _argList.begin(); it != _argList.end(); it++ ) -	{ -		(*it)->reset(); -	} -	 -	_progName.clear(); -} - -/////////////////////////////////////////////////////////////////////////////// -//End CmdLine.cpp -/////////////////////////////////////////////////////////////////////////////// - - - -} //namespace TCLAP -#endif diff --git a/src/tclap/.svn/text-base/CmdLineInterface.h.svn-base b/src/tclap/.svn/text-base/CmdLineInterface.h.svn-base deleted file mode 100755 index 1b25e9b..0000000 --- a/src/tclap/.svn/text-base/CmdLineInterface.h.svn-base +++ /dev/null @@ -1,150 +0,0 @@ - -/******************************************************************************  - *  - *  file:  CmdLineInterface.h - *  - *  Copyright (c) 2003, Michael E. Smoot . - *  Copyright (c) 2004, Michael E. Smoot, Daniel Aarno. - *  All rights reverved. - * - *  See the file COPYING in the top directory of this distribution for - *  more information. - *   - *  THE SOFTWARE IS PROVIDED _AS IS_, WITHOUT WARRANTY OF ANY KIND, EXPRESS  - *  OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,  - *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL  - *  THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER  - *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING  - *  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER  - *  DEALINGS IN THE SOFTWARE.   - *   - *****************************************************************************/  - -#ifndef TCLAP_COMMANDLINE_INTERFACE_H -#define TCLAP_COMMANDLINE_INTERFACE_H - -#include <string> -#include <vector> -#include <list> -#include <iostream> -#include <algorithm> - - -namespace TCLAP { -      -class Arg; -class CmdLineOutput; -class XorHandler; - -/** - * The base class that manages the command line definition and passes - * along the parsing to the appropriate Arg classes. - */ -class CmdLineInterface -{ -	public: - -		/** -		 * Destructor -		 */ -		virtual ~CmdLineInterface() {} - -		/** -		 * Adds an argument to the list of arguments to be parsed. -		 * \param a - Argument to be added.  -		 */ -		virtual void add( Arg& a )=0; - -		/** -		 * An alternative add.  Functionally identical. -		 * \param a - Argument to be added.  -		 */ -		virtual void add( Arg* a )=0; - -		/** -		 * Add two Args that will be xor'd.   -		 * If this method is used, add does -		 * not need to be called. -		 * \param a - Argument to be added and xor'd.  -		 * \param b - Argument to be added and xor'd.  -		 */ -		virtual void xorAdd( Arg& a, Arg& b )=0; - -		/** -		 * Add a list of Args that will be xor'd.  If this method is used,  -		 * add does not need to be called. -		 * \param xors - List of Args to be added and xor'd.  -		 */ -		virtual void xorAdd( std::vector<Arg*>& xors )=0; - -		/** -		 * Parses the command line. -		 * \param argc - Number of arguments. -		 * \param argv - Array of arguments. -		 */ -		virtual void parse(int argc, const char * const * argv)=0; - -        /** -         * Parses the command line. -         * \param args - A vector of strings representing the args.  -         * args[0] is still the program name. -         */ -        void parse(std::vector<std::string>& args); - -		/** -		 * Returns the CmdLineOutput object. -		 */ -		virtual CmdLineOutput* getOutput()=0; - -		/** -		 * \param co - CmdLineOutput object that we want to use instead.  -		 */ -		virtual void setOutput(CmdLineOutput* co)=0; - -		/** -		 * Returns the version string. -		 */ -		virtual std::string& getVersion()=0; - -		/** -		 * Returns the program name string. -		 */ -		virtual std::string& getProgramName()=0; - -		/** -		 * Returns the argList.  -		 */ -		virtual std::list<Arg*>& getArgList()=0; - -		/** -		 * Returns the XorHandler.  -		 */ -		virtual XorHandler& getXorHandler()=0; - -		/** -		 * Returns the delimiter string. -		 */ -		virtual char getDelimiter()=0; - -		/** -		 * Returns the message string. -		 */ -		virtual std::string& getMessage()=0; - -		/** -		 * Indicates whether or not the help and version switches were created -		 * automatically. -		 */ -		virtual bool hasHelpAndVersion()=0; - -		/**  -		 * Resets the instance as if it had just been constructed so that the -		 * instance can be reused.  -		 */ -		virtual void reset()=0; -}; - -} //namespace - - -#endif  diff --git a/src/tclap/.svn/text-base/CmdLineOutput.h.svn-base b/src/tclap/.svn/text-base/CmdLineOutput.h.svn-base deleted file mode 100755 index 71ee5a3..0000000 --- a/src/tclap/.svn/text-base/CmdLineOutput.h.svn-base +++ /dev/null @@ -1,74 +0,0 @@ - - -/******************************************************************************  - *  - *  file:  CmdLineOutput.h - *  - *  Copyright (c) 2004, Michael E. Smoot - *  All rights reverved. - *  - *  See the file COPYING in the top directory of this distribution for - *  more information. - *   - *  THE SOFTWARE IS PROVIDED _AS IS_, WITHOUT WARRANTY OF ANY KIND, EXPRESS  - *  OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,  - *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL  - *  THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER  - *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING  - *  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER  - *  DEALINGS IN THE SOFTWARE.   - *   - *****************************************************************************/  - -#ifndef TCLAP_CMDLINEOUTPUT_H -#define TCLAP_CMDLINEOUTPUT_H - -#include <string> -#include <vector> -#include <list> -#include <iostream> -#include <iomanip> -#include <algorithm> - -namespace TCLAP { - -class CmdLineInterface; -class ArgException; - -/** - * The interface that any output object must implement. - */ -class CmdLineOutput  -{ - -	public: - -		/** -		 * Virtual destructor. -		 */ -		virtual ~CmdLineOutput() {} - -		/** -		 * Generates some sort of output for the USAGE.  -		 * \param c - The CmdLine object the output is generated for.  -		 */ -		virtual void usage(CmdLineInterface& c)=0; - -		/** -		 * Generates some sort of output for the version.  -		 * \param c - The CmdLine object the output is generated for.  -		 */ -		virtual void version(CmdLineInterface& c)=0; - -		/** -		 * Generates some sort of output for a failure.  -		 * \param c - The CmdLine object the output is generated for.  -		 * \param e - The ArgException that caused the failure.  -		 */ -		virtual void failure( CmdLineInterface& c,  -						      ArgException& e )=0; - -}; - -} //namespace TCLAP -#endif  diff --git a/src/tclap/.svn/text-base/Constraint.h.svn-base b/src/tclap/.svn/text-base/Constraint.h.svn-base deleted file mode 100755 index a92acf9..0000000 --- a/src/tclap/.svn/text-base/Constraint.h.svn-base +++ /dev/null @@ -1,68 +0,0 @@ - -/****************************************************************************** - * - *  file:  Constraint.h - * - *  Copyright (c) 2005, Michael E. Smoot - *  All rights reverved. - * - *  See the file COPYING in the top directory of this distribution for - *  more information. - * - *  THE SOFTWARE IS PROVIDED _AS IS_, WITHOUT WARRANTY OF ANY KIND, EXPRESS - *  OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - *  THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - *  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - *  DEALINGS IN THE SOFTWARE. - * - *****************************************************************************/ - -#ifndef TCLAP_CONSTRAINT_H -#define TCLAP_CONSTRAINT_H - -#include <string> -#include <vector> -#include <list> -#include <iostream> -#include <iomanip> -#include <algorithm> - -namespace TCLAP { - -/** - * The interface that defines the interaction between the Arg and Constraint. - */ -template<class T> -class Constraint -{ - -	public: -		/** -		 * Returns a description of the Constraint. -		 */ -		virtual std::string description() const =0; - -		/** -		 * Returns the short ID for the Constraint. -		 */ -		virtual std::string shortID() const =0; - -		/** -		 * The method used to verify that the value parsed from the command -		 * line meets the constraint. -		 * \param value - The value that will be checked. -		 */ -		virtual bool check(const T& value) const =0; - -		/** -		 * Destructor. -		 * Silences warnings about Constraint being a base class with virtual -		 * functions but without a virtual destructor. -		 */ -		virtual ~Constraint() { ; } -}; - -} //namespace TCLAP -#endif diff --git a/src/tclap/.svn/text-base/DocBookOutput.h.svn-base b/src/tclap/.svn/text-base/DocBookOutput.h.svn-base deleted file mode 100755 index d2f1290..0000000 --- a/src/tclap/.svn/text-base/DocBookOutput.h.svn-base +++ /dev/null @@ -1,299 +0,0 @@ -// -*- Mode: c++; c-basic-offset: 4; tab-width: 4; -*- - -/******************************************************************************  - *  - *  file:  DocBookOutput.h - *  - *  Copyright (c) 2004, Michael E. Smoot - *  All rights reverved. - *  - *  See the file COPYING in the top directory of this distribution for - *  more information. - *   - *  THE SOFTWARE IS PROVIDED _AS IS_, WITHOUT WARRANTY OF ANY KIND, EXPRESS  - *  OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,  - *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL  - *  THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER  - *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING  - *  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER  - *  DEALINGS IN THE SOFTWARE.   - *   - *****************************************************************************/  - -#ifndef TCLAP_DOCBOOKOUTPUT_H -#define TCLAP_DOCBOOKOUTPUT_H - -#include <string> -#include <vector> -#include <list> -#include <iostream> -#include <algorithm> - -#include <tclap/CmdLineInterface.h> -#include <tclap/CmdLineOutput.h> -#include <tclap/XorHandler.h> -#include <tclap/Arg.h> - -namespace TCLAP { - -/** - * A class that generates DocBook output for usage() method for the  - * given CmdLine and its Args. - */ -class DocBookOutput : public CmdLineOutput -{ - -	public: - -		/** -		 * Prints the usage to stdout.  Can be overridden to  -		 * produce alternative behavior. -		 * \param c - The CmdLine object the output is generated for.  -		 */ -		virtual void usage(CmdLineInterface& c); - -		/** -		 * Prints the version to stdout. Can be overridden  -		 * to produce alternative behavior. -		 * \param c - The CmdLine object the output is generated for.  -		 */ -		virtual void version(CmdLineInterface& c); - -		/** -		 * Prints (to stderr) an error message, short usage  -		 * Can be overridden to produce alternative behavior. -		 * \param c - The CmdLine object the output is generated for.  -		 * \param e - The ArgException that caused the failure.  -		 */ -		virtual void failure(CmdLineInterface& c,  -						     ArgException& e ); - -	protected: - -		/** -		 * Substitutes the char r for string x in string s. -		 * \param s - The string to operate on.  -		 * \param r - The char to replace.  -		 * \param x - What to replace r with.  -		 */ -		void substituteSpecialChars( std::string& s, char r, std::string& x ); -		void removeChar( std::string& s, char r); -		void basename( std::string& s ); - -		void printShortArg(Arg* it); -		void printLongArg(Arg* it); - -		char theDelimiter; -}; - - -inline void DocBookOutput::version(CmdLineInterface& _cmd)  -{  -	std::cout << _cmd.getVersion() << std::endl; -} - -inline void DocBookOutput::usage(CmdLineInterface& _cmd )  -{ -	std::list<Arg*> argList = _cmd.getArgList(); -	std::string progName = _cmd.getProgramName(); -	std::string version = _cmd.getVersion(); -	theDelimiter = _cmd.getDelimiter(); -	XorHandler xorHandler = _cmd.getXorHandler(); -	std::vector< std::vector<Arg*> > xorList = xorHandler.getXorList(); -	basename(progName); - -	std::cout << "<?xml version='1.0'?>" << std::endl; -	std::cout << "<!DOCTYPE refentry PUBLIC \"-//OASIS//DTD DocBook XML V4.2//EN\"" << std::endl; -	std::cout << "\t\"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd\">" << std::endl << std::endl; - -	std::cout << "<refentry>" << std::endl; - -	std::cout << "<refmeta>" << std::endl; -	std::cout << "<refentrytitle>" << progName << "</refentrytitle>" << std::endl; -	std::cout << "<manvolnum>1</manvolnum>" << std::endl; -	std::cout << "</refmeta>" << std::endl; - -	std::cout << "<refnamediv>" << std::endl; -	std::cout << "<refname>" << progName << "</refname>" << std::endl; -	std::cout << "<refpurpose>" << _cmd.getMessage() << "</refpurpose>" << std::endl; -	std::cout << "</refnamediv>" << std::endl; - -	std::cout << "<refsynopsisdiv>" << std::endl; -	std::cout << "<cmdsynopsis>" << std::endl; - -	std::cout << "<command>" << progName << "</command>" << std::endl; - -	// xor -	for ( int i = 0; (unsigned int)i < xorList.size(); i++ ) -	{ -		std::cout << "<group choice='req'>" << std::endl; -		for ( ArgVectorIterator it = xorList[i].begin();  -						it != xorList[i].end(); it++ ) -			printShortArg((*it)); - -		std::cout << "</group>" << std::endl; -	} -	 -	// rest of args -	for (ArgListIterator it = argList.begin(); it != argList.end(); it++) -		if ( !xorHandler.contains( (*it) ) ) -			printShortArg((*it)); - - 	std::cout << "</cmdsynopsis>" << std::endl; -	std::cout << "</refsynopsisdiv>" << std::endl; - -	std::cout << "<refsect1>" << std::endl; -	std::cout << "<title>Description</title>" << std::endl; -	std::cout << "<para>" << std::endl; -	std::cout << _cmd.getMessage() << std::endl;  -	std::cout << "</para>" << std::endl; -	std::cout << "</refsect1>" << std::endl; - -	std::cout << "<refsect1>" << std::endl; -	std::cout << "<title>Options</title>" << std::endl; - -	std::cout << "<variablelist>" << std::endl; -	 -	for (ArgListIterator it = argList.begin(); it != argList.end(); it++) -		printLongArg((*it)); - -	std::cout << "</variablelist>" << std::endl; -	std::cout << "</refsect1>" << std::endl; - -	std::cout << "<refsect1>" << std::endl; -	std::cout << "<title>Version</title>" << std::endl; -	std::cout << "<para>" << std::endl; -	std::cout << version << std::endl;  -	std::cout << "</para>" << std::endl; -	std::cout << "</refsect1>" << std::endl; -	 -	std::cout << "</refentry>" << std::endl; - -} - -inline void DocBookOutput::failure( CmdLineInterface& _cmd, -				    ArgException& e )  -{  -	static_cast<void>(_cmd); // unused -	std::cout << e.what() << std::endl; -	throw ExitException(1); -} - -inline void DocBookOutput::substituteSpecialChars( std::string& s, -				                                   char r, -												   std::string& x ) -{ -	size_t p; -	while ( (p = s.find_first_of(r)) != std::string::npos ) -	{ -		s.erase(p,1); -		s.insert(p,x); -	} -} - -inline void DocBookOutput::removeChar( std::string& s, char r) -{ -	size_t p; -	while ( (p = s.find_first_of(r)) != std::string::npos ) -	{ -		s.erase(p,1); -	} -} - -inline void DocBookOutput::basename( std::string& s ) -{ -	size_t p = s.find_last_of('/'); -	if ( p != std::string::npos ) -	{ -		s.erase(0, p + 1); -	} -} - -inline void DocBookOutput::printShortArg(Arg* a) -{ -	std::string lt = "<";  -	std::string gt = ">";  - -	std::string id = a->shortID(); -	substituteSpecialChars(id,'<',lt); -	substituteSpecialChars(id,'>',gt); -	removeChar(id,'['); -	removeChar(id,']'); -	 -	std::string choice = "opt"; -	if ( a->isRequired() ) -		choice = "plain"; - -	std::cout << "<arg choice='" << choice << '\''; -	if ( a->acceptsMultipleValues() ) -		std::cout << " rep='repeat'"; - - -	std::cout << '>'; -	if ( !a->getFlag().empty() ) -		std::cout << a->flagStartChar() << a->getFlag(); -	else -		std::cout << a->nameStartString() << a->getName(); -	if ( a->isValueRequired() ) -	{ -		std::string arg = a->shortID(); -		removeChar(arg,'['); -		removeChar(arg,']'); -		removeChar(arg,'<'); -		removeChar(arg,'>'); -		arg.erase(0, arg.find_last_of(theDelimiter) + 1); -		std::cout << theDelimiter; -		std::cout << "<replaceable>" << arg << "</replaceable>"; -	} -	std::cout << "</arg>" << std::endl; - -} - -inline void DocBookOutput::printLongArg(Arg* a) -{ -	std::string lt = "<";  -	std::string gt = ">";  - -	std::string desc = a->getDescription(); -	substituteSpecialChars(desc,'<',lt); -	substituteSpecialChars(desc,'>',gt); - -	std::cout << "<varlistentry>" << std::endl; - -	if ( !a->getFlag().empty() ) -	{ -		std::cout << "<term>" << std::endl; -		std::cout << "<option>"; -		std::cout << a->flagStartChar() << a->getFlag(); -		std::cout << "</option>" << std::endl; -		std::cout << "</term>" << std::endl; -	} - -	std::cout << "<term>" << std::endl; -	std::cout << "<option>"; -	std::cout << a->nameStartString() << a->getName(); -	if ( a->isValueRequired() ) -	{ -		std::string arg = a->shortID(); -		removeChar(arg,'['); -		removeChar(arg,']'); -		removeChar(arg,'<'); -		removeChar(arg,'>'); -		arg.erase(0, arg.find_last_of(theDelimiter) + 1); -		std::cout << theDelimiter; -		std::cout << "<replaceable>" << arg << "</replaceable>"; -	} -	std::cout << "</option>" << std::endl; -	std::cout << "</term>" << std::endl; - -	std::cout << "<listitem>" << std::endl; -	std::cout << "<para>" << std::endl; -	std::cout << desc << std::endl; -	std::cout << "</para>" << std::endl; -	std::cout << "</listitem>" << std::endl; - -	std::cout << "</varlistentry>" << std::endl; -} - -} //namespace TCLAP -#endif  diff --git a/src/tclap/.svn/text-base/HelpVisitor.h.svn-base b/src/tclap/.svn/text-base/HelpVisitor.h.svn-base deleted file mode 100755 index 2cdb997..0000000 --- a/src/tclap/.svn/text-base/HelpVisitor.h.svn-base +++ /dev/null @@ -1,69 +0,0 @@ - -/******************************************************************************  - *  - *  file:  HelpVisitor.h - *  - *  Copyright (c) 2003, Michael E. Smoot . - *  All rights reverved. - *  - *  See the file COPYING in the top directory of this distribution for - *  more information. - *   - *  THE SOFTWARE IS PROVIDED _AS IS_, WITHOUT WARRANTY OF ANY KIND, EXPRESS  - *  OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,  - *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL  - *  THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER  - *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING  - *  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER  - *  DEALINGS IN THE SOFTWARE.   - *   - *****************************************************************************/  - -#ifndef TCLAP_HELP_VISITOR_H -#define TCLAP_HELP_VISITOR_H - -#include <tclap/CmdLineInterface.h> -#include <tclap/CmdLineOutput.h> -#include <tclap/Visitor.h> - -namespace TCLAP { - -/** - * A Visitor object that calls the usage method of the given CmdLineOutput - * object for the specified CmdLine object. - */ -class HelpVisitor: public Visitor -{ -	protected: - -		/** -		 * The CmdLine the output will be generated for.  -		 */ -		CmdLineInterface* _cmd; - -		/** -		 * The output object.  -		 */ -		CmdLineOutput** _out; - -	public: - -		/** -		 * Constructor. -		 * \param cmd - The CmdLine the output will be generated for. -		 * \param out - The type of output.  -		 */ -		HelpVisitor(CmdLineInterface* cmd, CmdLineOutput** out)  -				: Visitor(), _cmd( cmd ), _out( out ) { } - -		/** -		 * Calls the usage method of the CmdLineOutput for the  -		 * specified CmdLine. -		 */ -		void visit() { (*_out)->usage(*_cmd); throw ExitException(0); } -		 -}; - -} - -#endif diff --git a/src/tclap/.svn/text-base/IgnoreRestVisitor.h.svn-base b/src/tclap/.svn/text-base/IgnoreRestVisitor.h.svn-base deleted file mode 100755 index e328649..0000000 --- a/src/tclap/.svn/text-base/IgnoreRestVisitor.h.svn-base +++ /dev/null @@ -1,52 +0,0 @@ - -/******************************************************************************  - *  - *  file:  IgnoreRestVisitor.h - *  - *  Copyright (c) 2003, Michael E. Smoot . - *  All rights reverved. - *  - *  See the file COPYING in the top directory of this distribution for - *  more information. - *   - *  THE SOFTWARE IS PROVIDED _AS IS_, WITHOUT WARRANTY OF ANY KIND, EXPRESS  - *  OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,  - *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL  - *  THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER  - *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING  - *  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER  - *  DEALINGS IN THE SOFTWARE.   - *   - *****************************************************************************/  - - -#ifndef TCLAP_IGNORE_REST_VISITOR_H -#define TCLAP_IGNORE_REST_VISITOR_H - -#include <tclap/Visitor.h> -#include <tclap/Arg.h> - -namespace TCLAP { - -/** - * A Vistor that tells the CmdLine to begin ignoring arguments after - * this one is parsed. - */ -class IgnoreRestVisitor: public Visitor -{ -	public: - -		/** -		 * Constructor. -		 */ -		IgnoreRestVisitor() : Visitor() {} - -		/** -		 * Sets Arg::_ignoreRest. -		 */ -		void visit() { Arg::beginIgnoring();  } -}; - -} - -#endif diff --git a/src/tclap/.svn/text-base/Makefile.am.svn-base b/src/tclap/.svn/text-base/Makefile.am.svn-base deleted file mode 100755 index 0e247bf..0000000 --- a/src/tclap/.svn/text-base/Makefile.am.svn-base +++ /dev/null @@ -1,28 +0,0 @@ - -libtclapincludedir = $(includedir)/tclap - -libtclapinclude_HEADERS = \ -			 CmdLineInterface.h \ -			 ArgException.h \ -			 CmdLine.h \ -			 XorHandler.h \ -			 MultiArg.h \ -			 UnlabeledMultiArg.h \ -			 ValueArg.h \ -			 UnlabeledValueArg.h \ -			 Visitor.h Arg.h \ -			 HelpVisitor.h \ -			 SwitchArg.h \ -			 MultiSwitchArg.h \ -			 VersionVisitor.h \ -			 IgnoreRestVisitor.h \ -			 CmdLineOutput.h \ -			 StdOutput.h \ -			 DocBookOutput.h \ -			 ZshCompletionOutput.h \ -			 OptionalUnlabeledTracker.h \ -			 Constraint.h \ -			 ValuesConstraint.h \ -			 ArgTraits.h \ -			 StandardTraits.h - diff --git a/src/tclap/.svn/text-base/Makefile.in.svn-base b/src/tclap/.svn/text-base/Makefile.in.svn-base deleted file mode 100755 index d4b451f..0000000 --- a/src/tclap/.svn/text-base/Makefile.in.svn-base +++ /dev/null @@ -1,387 +0,0 @@ -# Makefile.in generated by automake 1.9.2 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004  Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -top_builddir = ../.. -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL = @INSTALL@ -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -subdir = include/tclap -DIST_COMMON = $(libtclapinclude_HEADERS) $(srcdir)/Makefile.am \ -	$(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/config/ac_cxx_have_long_long.m4 \ -	$(top_srcdir)/config/ac_cxx_have_sstream.m4 \ -	$(top_srcdir)/config/ac_cxx_have_strstream.m4 \ -	$(top_srcdir)/config/ac_cxx_namespaces.m4 \ -	$(top_srcdir)/config/bb_enable_doxygen.m4 \ -	$(top_srcdir)/configure.in -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ -	$(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config/config.h -CONFIG_CLEAN_FILES = -SOURCES = -DIST_SOURCES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ -    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ -    *) f=$$p;; \ -  esac; -am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; -am__installdirs = "$(DESTDIR)$(libtclapincludedir)" -libtclapincludeHEADERS_INSTALL = $(INSTALL_HEADER) -HEADERS = $(libtclapinclude_HEADERS) -ETAGS = etags -CTAGS = ctags -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMDEP_FALSE = @AMDEP_FALSE@ -AMDEP_TRUE = @AMDEP_TRUE@ -AMTAR = @AMTAR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CPPFLAGS = @CPPFLAGS@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DOC_FALSE = @DOC_FALSE@ -DOC_TRUE = @DOC_TRUE@ -DOT = @DOT@ -DOXYGEN = @DOXYGEN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -HAVE_GNU_COMPILERS_FALSE = @HAVE_GNU_COMPILERS_FALSE@ -HAVE_GNU_COMPILERS_TRUE = @HAVE_GNU_COMPILERS_TRUE@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LTLIBOBJS = @LTLIBOBJS@ -MAKEINFO = @MAKEINFO@ -OBJEXT = @OBJEXT@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -RANLIB = @RANLIB@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VERSION = @VERSION@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_RANLIB = @ac_ct_RANLIB@ -ac_ct_STRIP = @ac_ct_STRIP@ -am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ -am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build_alias = @build_alias@ -datadir = @datadir@ -exec_prefix = @exec_prefix@ -host_alias = @host_alias@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -libtclapincludedir = $(includedir)/tclap -libtclapinclude_HEADERS = \ -			 CmdLineInterface.h \ -			 ArgException.h \ -			 CmdLine.h \ -			 XorHandler.h \ -			 MultiArg.h \ -			 UnlabeledMultiArg.h \ -			 ValueArg.h \ -			 UnlabeledValueArg.h \ -			 Visitor.h Arg.h \ -			 HelpVisitor.h \ -			 SwitchArg.h \ -			 MultiSwitchArg.h \ -			 VersionVisitor.h \ -			 IgnoreRestVisitor.h \ -			 CmdLineOutput.h \ -			 StdOutput.h \ -			 DocBookOutput.h \ -			 ZshCompletionOutput.h \ -			 OptionalUnlabeledTracker.h \ -			 Constraint.h \ -			 ValuesConstraint.h \ -			 ArgTraits.h \ -			 StandardTraits.h - -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps) -	@for dep in $?; do \ -	  case '$(am__configure_deps)' in \ -	    *$$dep*) \ -	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ -		&& exit 0; \ -	      exit 1;; \ -	  esac; \ -	done; \ -	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  include/tclap/Makefile'; \ -	cd $(top_srcdir) && \ -	  $(AUTOMAKE) --gnu  include/tclap/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status -	@case '$?' in \ -	  *config.status*) \ -	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ -	  *) \ -	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ -	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ -	esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) -	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure:  $(am__configure_deps) -	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4):  $(am__aclocal_m4_deps) -	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -uninstall-info-am: -install-libtclapincludeHEADERS: $(libtclapinclude_HEADERS) -	@$(NORMAL_INSTALL) -	test -z "$(libtclapincludedir)" || $(mkdir_p) "$(DESTDIR)$(libtclapincludedir)" -	@list='$(libtclapinclude_HEADERS)'; for p in $$list; do \ -	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ -	  f=$(am__strip_dir) \ -	  echo " $(libtclapincludeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(libtclapincludedir)/$$f'"; \ -	  $(libtclapincludeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(libtclapincludedir)/$$f"; \ -	done - -uninstall-libtclapincludeHEADERS: -	@$(NORMAL_UNINSTALL) -	@list='$(libtclapinclude_HEADERS)'; for p in $$list; do \ -	  f=$(am__strip_dir) \ -	  echo " rm -f '$(DESTDIR)$(libtclapincludedir)/$$f'"; \ -	  rm -f "$(DESTDIR)$(libtclapincludedir)/$$f"; \ -	done - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) -	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -	unique=`for i in $$list; do \ -	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -	  done | \ -	  $(AWK) '    { files[$$0] = 1; } \ -	       END { for (i in files) print i; }'`; \ -	mkid -fID $$unique -tags: TAGS - -TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \ -		$(TAGS_FILES) $(LISP) -	tags=; \ -	here=`pwd`; \ -	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \ -	unique=`for i in $$list; do \ -	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -	  done | \ -	  $(AWK) '    { files[$$0] = 1; } \ -	       END { for (i in files) print i; }'`; \ -	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ -	  test -n "$$unique" || unique=$$empty_fix; \ -	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ -	    $$tags $$unique; \ -	fi -ctags: CTAGS -CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \ -		$(TAGS_FILES) $(LISP) -	tags=; \ -	here=`pwd`; \ -	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \ -	unique=`for i in $$list; do \ -	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -	  done | \ -	  $(AWK) '    { files[$$0] = 1; } \ -	       END { for (i in files) print i; }'`; \ -	test -z "$(CTAGS_ARGS)$$tags$$unique" \ -	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ -	     $$tags $$unique - -GTAGS: -	here=`$(am__cd) $(top_builddir) && pwd` \ -	  && cd $(top_srcdir) \ -	  && gtags -i $(GTAGS_ARGS) $$here - -distclean-tags: -	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) -	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ -	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ -	list='$(DISTFILES)'; for file in $$list; do \ -	  case $$file in \ -	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ -	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ -	  esac; \ -	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ -	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ -	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \ -	    dir="/$$dir"; \ -	    $(mkdir_p) "$(distdir)$$dir"; \ -	  else \ -	    dir=''; \ -	  fi; \ -	  if test -d $$d/$$file; then \ -	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ -	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ -	    fi; \ -	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ -	  else \ -	    test -f $(distdir)/$$file \ -	    || cp -p $$d/$$file $(distdir)/$$file \ -	    || exit 1; \ -	  fi; \ -	done -check-am: all-am -check: check-am -all-am: Makefile $(HEADERS) -installdirs: -	for dir in "$(DESTDIR)$(libtclapincludedir)"; do \ -	  test -z "$$dir" || $(mkdir_p) "$$dir"; \ -	done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am -	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: -	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ -	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ -	  `test -z '$(STRIP)' || \ -	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: -	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -maintainer-clean-generic: -	@echo "This command is intended for maintainers to use" -	@echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic mostlyclean-am - -distclean: distclean-am -	-rm -f Makefile -distclean-am: clean-am distclean-generic distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -info: info-am - -info-am: - -install-data-am: install-libtclapincludeHEADERS - -install-exec-am: - -install-info: install-info-am - -install-man: - -installcheck-am: - -maintainer-clean: maintainer-clean-am -	-rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-generic - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-info-am uninstall-libtclapincludeHEADERS - -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ -	ctags distclean distclean-generic distclean-tags distdir dvi \ -	dvi-am html html-am info info-am install install-am \ -	install-data install-data-am install-exec install-exec-am \ -	install-info install-info-am install-libtclapincludeHEADERS \ -	install-man install-strip installcheck installcheck-am \ -	installdirs maintainer-clean maintainer-clean-generic \ -	mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \ -	uninstall uninstall-am uninstall-info-am \ -	uninstall-libtclapincludeHEADERS - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/src/tclap/.svn/text-base/MultiArg.h.svn-base b/src/tclap/.svn/text-base/MultiArg.h.svn-base deleted file mode 100755 index 460e5cb..0000000 --- a/src/tclap/.svn/text-base/MultiArg.h.svn-base +++ /dev/null @@ -1,422 +0,0 @@ -/******************************************************************************  - *  - *  file:  MultiArg.h - *  - *  Copyright (c) 2003, Michael E. Smoot . - *  Copyright (c) 2004, Michael E. Smoot, Daniel Aarno. - *  All rights reverved. - *  - *  See the file COPYING in the top directory of this distribution for - *  more information. - *   - *  THE SOFTWARE IS PROVIDED _AS IS_, WITHOUT WARRANTY OF ANY KIND, EXPRESS  - *  OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,  - *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL  - *  THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER  - *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING  - *  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER  - *  DEALINGS IN THE SOFTWARE.   - *   - *****************************************************************************/ - - -#ifndef TCLAP_MULTIPLE_ARGUMENT_H -#define TCLAP_MULTIPLE_ARGUMENT_H - -#include <string> -#include <vector> - -#include <tclap/Arg.h> -#include <tclap/Constraint.h> - -namespace TCLAP { -/** - * An argument that allows multiple values of type T to be specified.  Very - * similar to a ValueArg, except a vector of values will be returned - * instead of just one. - */ -template<class T> -class MultiArg : public Arg -{ -public: -	typedef std::vector<T> container_type;	 -	typedef typename container_type::iterator iterator; -	typedef typename container_type::const_iterator const_iterator; - -protected: - -	/** -	 * The list of values parsed from the CmdLine. -	 */ -	std::vector<T> _values; - -	/** -	 * The description of type T to be used in the usage. -	 */ -	std::string _typeDesc; - -	/** -	 * A list of constraint on this Arg.  -	 */ -	Constraint<T>* _constraint; - -	/** -	 * Extracts the value from the string. -	 * Attempts to parse string as type T, if this fails an exception -	 * is thrown. -	 * \param val - The string to be read. -	 */ -	void _extractValue( const std::string& val ); - -	/** -	 * Used by XorHandler to decide whether to keep parsing for this arg. -	 */ -	bool _allowMore; - -public: - -	/** -	 * Constructor. -	 * \param flag - The one character flag that identifies this -	 * argument on the command line. -	 * \param name - A one word name for the argument.  Can be -	 * used as a long flag on the command line. -	 * \param desc - A description of what the argument is for or -	 * does. -	 * \param req - Whether the argument is required on the command -	 * line. -	 * \param typeDesc - A short, human readable description of the -	 * type that this object expects.  This is used in the generation -	 * of the USAGE statement.  The goal is to be helpful to the end user -	 * of the program. -	 * \param v - An optional visitor.  You probably should not -	 * use this unless you have a very good reason. -	 */ -	MultiArg( const std::string& flag, -                  const std::string& name, -                  const std::string& desc, -                  bool req, -                  const std::string& typeDesc, -                  Visitor* v = NULL); - -	/** -	 * Constructor. -	 * \param flag - The one character flag that identifies this -	 * argument on the command line. -	 * \param name - A one word name for the argument.  Can be -	 * used as a long flag on the command line. -	 * \param desc - A description of what the argument is for or -	 * does. -	 * \param req - Whether the argument is required on the command -	 * line. -	 * \param typeDesc - A short, human readable description of the -	 * type that this object expects.  This is used in the generation -	 * of the USAGE statement.  The goal is to be helpful to the end user -	 * of the program. -	 * \param parser - A CmdLine parser object to add this Arg to -	 * \param v - An optional visitor.  You probably should not -	 * use this unless you have a very good reason. -	 */ -	MultiArg( const std::string& flag,  -                  const std::string& name, -                  const std::string& desc, -                  bool req, -                  const std::string& typeDesc, -                  CmdLineInterface& parser, -                  Visitor* v = NULL ); - -	/** -	 * Constructor. -	 * \param flag - The one character flag that identifies this -	 * argument on the command line. -	 * \param name - A one word name for the argument.  Can be -	 * used as a long flag on the command line. -	 * \param desc - A description of what the argument is for or -	 * does. -	 * \param req - Whether the argument is required on the command -	 * line. -	 * \param constraint - A pointer to a Constraint object used -	 * to constrain this Arg. -	 * \param v - An optional visitor.  You probably should not -	 * use this unless you have a very good reason. -	 */ -	MultiArg( const std::string& flag, -                  const std::string& name, -                  const std::string& desc, -                  bool req, -                  Constraint<T>* constraint, -                  Visitor* v = NULL ); -		   -	/** -	 * Constructor. -	 * \param flag - The one character flag that identifies this -	 * argument on the command line. -	 * \param name - A one word name for the argument.  Can be -	 * used as a long flag on the command line. -	 * \param desc - A description of what the argument is for or -	 * does. -	 * \param req - Whether the argument is required on the command -	 * line. -	 * \param constraint - A pointer to a Constraint object used -	 * to constrain this Arg. -	 * \param parser - A CmdLine parser object to add this Arg to -	 * \param v - An optional visitor.  You probably should not -	 * use this unless you have a very good reason. -	 */ -	MultiArg( const std::string& flag,  -                  const std::string& name, -                  const std::string& desc, -                  bool req, -                  Constraint<T>* constraint, -                  CmdLineInterface& parser, -                  Visitor* v = NULL ); -		   -	/** -	 * Handles the processing of the argument. -	 * This re-implements the Arg version of this method to set the -	 * _value of the argument appropriately.  It knows the difference -	 * between labeled and unlabeled. -	 * \param i - Pointer the the current argument in the list. -	 * \param args - Mutable list of strings. Passed from main(). -	 */ -	virtual bool processArg(int* i, std::vector<std::string>& args);  - -	/** -	 * Returns a vector of type T containing the values parsed from -	 * the command line. -	 */ -	const std::vector<T>& getValue(); - -	/** -	 * Returns an iterator over the values parsed from the command -	 * line. -	 */ -	const_iterator begin() const { return _values.begin(); } - -	/** -	 * Returns the end of the values parsed from the command -	 * line. -	 */ -	const_iterator end() const { return _values.end(); } - -	/** -	 * Returns the a short id string.  Used in the usage.  -	 * \param val - value to be used. -	 */ -	virtual std::string shortID(const std::string& val="val") const; - -	/** -	 * Returns the a long id string.  Used in the usage.  -	 * \param val - value to be used. -	 */ -	virtual std::string longID(const std::string& val="val") const; - -	/** -	 * Once we've matched the first value, then the arg is no longer -	 * required. -	 */ -	virtual bool isRequired() const; - -	virtual bool allowMore(); -	 -	virtual void reset(); - -}; - -template<class T> -MultiArg<T>::MultiArg(const std::string& flag,  -                      const std::string& name, -                      const std::string& desc, -                      bool req, -                      const std::string& typeDesc, -                      Visitor* v) -: Arg( flag, name, desc, req, true, v ), -  _typeDesc( typeDesc ), -  _constraint( NULL ), -  _allowMore(false) -{  -	_acceptsMultipleValues = true; -} - -template<class T> -MultiArg<T>::MultiArg(const std::string& flag,  -                      const std::string& name, -                      const std::string& desc, -                      bool req, -                      const std::string& typeDesc, -                      CmdLineInterface& parser, -                      Visitor* v) -: Arg( flag, name, desc, req, true, v ), -  _typeDesc( typeDesc ), -  _constraint( NULL ), -  _allowMore(false) -{  -	parser.add( this ); -	_acceptsMultipleValues = true; -} - -/** - * - */ -template<class T> -MultiArg<T>::MultiArg(const std::string& flag,  -                      const std::string& name, -                      const std::string& desc, -                      bool req, -                      Constraint<T>* constraint, -                      Visitor* v) -: Arg( flag, name, desc, req, true, v ), -  _typeDesc( constraint->shortID() ), -  _constraint( constraint ), -  _allowMore(false) -{  -	_acceptsMultipleValues = true; -} - -template<class T> -MultiArg<T>::MultiArg(const std::string& flag,  -                      const std::string& name, -                      const std::string& desc, -                      bool req, -                      Constraint<T>* constraint, -                      CmdLineInterface& parser, -                      Visitor* v) -: Arg( flag, name, desc, req, true, v ), -  _typeDesc( constraint->shortID() ), -  _constraint( constraint ), -  _allowMore(false) -{  -	parser.add( this ); -	_acceptsMultipleValues = true; -} - -template<class T> -const std::vector<T>& MultiArg<T>::getValue() { return _values; } - -template<class T> -bool MultiArg<T>::processArg(int *i, std::vector<std::string>& args)  -{ - 	if ( _ignoreable && Arg::ignoreRest() ) -		return false; - -	if ( _hasBlanks( args[*i] ) ) -		return false; - -	std::string flag = args[*i]; -	std::string value = ""; - -   	trimFlag( flag, value ); - -   	if ( argMatches( flag ) ) -   	{ -   		if ( Arg::delimiter() != ' ' && value == "" ) -			throw( ArgParseException(  -			           "Couldn't find delimiter for this argument!", -					   toString() ) ); - -		// always take the first one, regardless of start string -		if ( value == "" ) -		{ -			(*i)++; -			if ( static_cast<unsigned int>(*i) < args.size() ) -				_extractValue( args[*i] ); -			else -				throw( ArgParseException("Missing a value for this argument!", -                                         toString() ) ); -		}  -		else -			_extractValue( value ); - -		/* -		// continuing taking the args until we hit one with a start string  -		while ( (unsigned int)(*i)+1 < args.size() && -				args[(*i)+1].find_first_of( Arg::flagStartString() ) != 0 && -		        args[(*i)+1].find_first_of( Arg::nameStartString() ) != 0 )  -				_extractValue( args[++(*i)] ); -		*/ - -		_alreadySet = true; -		_checkWithVisitor(); - -		return true; -	} -	else -		return false; -} - -/** - * - */ -template<class T> -std::string MultiArg<T>::shortID(const std::string& val) const -{ -	static_cast<void>(val); // Ignore input, don't warn -	return Arg::shortID(_typeDesc) + " ... "; -} - -/** - * - */ -template<class T> -std::string MultiArg<T>::longID(const std::string& val) const -{ -	static_cast<void>(val); // Ignore input, don't warn -	return Arg::longID(_typeDesc) + "  (accepted multiple times)"; -} - -/** - * Once we've matched the first value, then the arg is no longer - * required. - */ -template<class T> -bool MultiArg<T>::isRequired() const -{ -	if ( _required ) -	{ -		if ( _values.size() > 1 ) -			return false; -		else -			return true; -   	} -   	else -		return false; - -} - -template<class T> -void MultiArg<T>::_extractValue( const std::string& val )  -{ -    try { -	T tmp; -	ExtractValue(tmp, val, typename ArgTraits<T>::ValueCategory()); -	_values.push_back(tmp); -    } catch( ArgParseException &e) { -	throw ArgParseException(e.error(), toString()); -    } - -    if ( _constraint != NULL ) -	if ( ! _constraint->check( _values.back() ) ) -	    throw( CmdLineParseException( "Value '" + val + -					  "' does not meet constraint: " + -					  _constraint->description(),  -					  toString() ) ); -} -		 -template<class T> -bool MultiArg<T>::allowMore() -{ -	bool am = _allowMore; -	_allowMore = true; -	return am; -} - -template<class T> -void MultiArg<T>::reset() -{ -	Arg::reset(); -	_values.clear(); -} - -} // namespace TCLAP - -#endif diff --git a/src/tclap/.svn/text-base/MultiSwitchArg.h.svn-base b/src/tclap/.svn/text-base/MultiSwitchArg.h.svn-base deleted file mode 100755 index 8820b64..0000000 --- a/src/tclap/.svn/text-base/MultiSwitchArg.h.svn-base +++ /dev/null @@ -1,216 +0,0 @@ - -/******************************************************************************  -* -*  file:  MultiSwitchArg.h -* -*  Copyright (c) 2003, Michael E. Smoot . -*  Copyright (c) 2004, Michael E. Smoot, Daniel Aarno. -*  Copyright (c) 2005, Michael E. Smoot, Daniel Aarno, Erik Zeek. -*  All rights reverved. -* -*  See the file COPYING in the top directory of this distribution for -*  more information. -* -*  THE SOFTWARE IS PROVIDED _AS IS_, WITHOUT WARRANTY OF ANY KIND, EXPRESS -*  OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -*  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -*  THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -*  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -*  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -*  DEALINGS IN THE SOFTWARE. -* -*****************************************************************************/ - - -#ifndef TCLAP_MULTI_SWITCH_ARG_H -#define TCLAP_MULTI_SWITCH_ARG_H - -#include <string> -#include <vector> - -#include <tclap/SwitchArg.h> - -namespace TCLAP { - -/** -* A multiple switch argument.  If the switch is set on the command line, then -* the getValue method will return the number of times the switch appears. -*/ -class MultiSwitchArg : public SwitchArg -{ -	protected: - -		/** -		 * The value of the switch. -		 */ -		int _value; - -		/** -		 * Used to support the reset() method so that ValueArg can be -		 * reset to their constructed value. -		 */ -		int _default; - -	public: - -		/** -		 * MultiSwitchArg constructor. -		 * \param flag - The one character flag that identifies this -		 * argument on the command line. -		 * \param name - A one word name for the argument.  Can be -		 * used as a long flag on the command line. -		 * \param desc - A description of what the argument is for or -		 * does. -		 * \param init - Optional. The initial/default value of this Arg.  -		 * Defaults to 0. -		 * \param v - An optional visitor.  You probably should not -		 * use this unless you have a very good reason. -		 */ -		MultiSwitchArg(const std::string& flag,  -				const std::string& name, -				const std::string& desc, -				int init = 0, -				Visitor* v = NULL); - - -		/** -		 * MultiSwitchArg constructor. -		 * \param flag - The one character flag that identifies this -		 * argument on the command line. -		 * \param name - A one word name for the argument.  Can be -		 * used as a long flag on the command line. -		 * \param desc - A description of what the argument is for or -		 * does. -		 * \param parser - A CmdLine parser object to add this Arg to -		 * \param init - Optional. The initial/default value of this Arg.  -		 * Defaults to 0. -		 * \param v - An optional visitor.  You probably should not -		 * use this unless you have a very good reason. -		 */ -		MultiSwitchArg(const std::string& flag,  -				const std::string& name, -				const std::string& desc, -				CmdLineInterface& parser, -				int init = 0, -				Visitor* v = NULL); - - -		/** -		 * Handles the processing of the argument. -		 * This re-implements the SwitchArg version of this method to set the -		 * _value of the argument appropriately. -		 * \param i - Pointer the the current argument in the list. -		 * \param args - Mutable list of strings. Passed -		 * in from main(). -		 */ -		virtual bool processArg(int* i, std::vector<std::string>& args);  - -		/** -		 * Returns int, the number of times the switch has been set. -		 */ -		int getValue(); - -		/** -		 * Returns the shortID for this Arg. -		 */ -		std::string shortID(const std::string& val) const; - -		/** -		 * Returns the longID for this Arg. -		 */ -		std::string longID(const std::string& val) const; -		 -		void reset(); - -}; - -////////////////////////////////////////////////////////////////////// -//BEGIN MultiSwitchArg.cpp -////////////////////////////////////////////////////////////////////// -inline MultiSwitchArg::MultiSwitchArg(const std::string& flag, -					const std::string& name, -					const std::string& desc, -					int init, -					Visitor* v ) -: SwitchArg(flag, name, desc, false, v), -_value( init ), -_default( init ) -{ } - -inline MultiSwitchArg::MultiSwitchArg(const std::string& flag, -					const std::string& name,  -					const std::string& desc,  -					CmdLineInterface& parser, -					int init, -					Visitor* v ) -: SwitchArg(flag, name, desc, false, v), -_value( init ), -_default( init ) -{  -	parser.add( this ); -} - -inline int MultiSwitchArg::getValue() { return _value; } - -inline bool MultiSwitchArg::processArg(int *i, std::vector<std::string>& args) -{ -	if ( _ignoreable && Arg::ignoreRest() ) -		return false; - -	if ( argMatches( args[*i] )) -	{ -		// so the isSet() method will work -		_alreadySet = true; - -		// Matched argument: increment value. -		++_value; - -		_checkWithVisitor(); - -		return true; -	} -	else if ( combinedSwitchesMatch( args[*i] ) ) -	{ -		// so the isSet() method will work -		_alreadySet = true; - -		// Matched argument: increment value. -		++_value; - -		// Check for more in argument and increment value. -		while ( combinedSwitchesMatch( args[*i] ) )  -			++_value; - -		_checkWithVisitor(); - -		return false; -	} -	else -		return false; -} - -inline std::string  -MultiSwitchArg::shortID(const std::string& val) const -{ -	return Arg::shortID(val) + " ... "; -} - -inline std::string  -MultiSwitchArg::longID(const std::string& val) const -{ -	return Arg::longID(val) + "  (accepted multiple times)"; -} - -inline void -MultiSwitchArg::reset() -{ -	MultiSwitchArg::_value = MultiSwitchArg::_default; -} - -////////////////////////////////////////////////////////////////////// -//END MultiSwitchArg.cpp -////////////////////////////////////////////////////////////////////// - -} //namespace TCLAP - -#endif diff --git a/src/tclap/.svn/text-base/OptionalUnlabeledTracker.h.svn-base b/src/tclap/.svn/text-base/OptionalUnlabeledTracker.h.svn-base deleted file mode 100755 index 8174c5f..0000000 --- a/src/tclap/.svn/text-base/OptionalUnlabeledTracker.h.svn-base +++ /dev/null @@ -1,62 +0,0 @@ - - -/******************************************************************************  - *  - *  file:  OptionalUnlabeledTracker.h - *  - *  Copyright (c) 2005, Michael E. Smoot . - *  All rights reverved. - *  - *  See the file COPYING in the top directory of this distribution for - *  more information. - *   - *  THE SOFTWARE IS PROVIDED _AS IS_, WITHOUT WARRANTY OF ANY KIND, EXPRESS  - *  OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,  - *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL  - *  THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER  - *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING  - *  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER  - *  DEALINGS IN THE SOFTWARE.   - *   - *****************************************************************************/  - - -#ifndef TCLAP_OPTIONAL_UNLABELED_TRACKER_H -#define TCLAP_OPTIONAL_UNLABELED_TRACKER_H - -#include <string> - -namespace TCLAP { - -class OptionalUnlabeledTracker -{ - -	public: - -		static void check( bool req, const std::string& argName ); - -		static void gotOptional() { alreadyOptionalRef() = true; } - -		static bool& alreadyOptional() { return alreadyOptionalRef(); }  - -	private: - -		static bool& alreadyOptionalRef() { static bool ct = false; return ct; } -}; - - -inline void OptionalUnlabeledTracker::check( bool req, const std::string& argName ) -{ -    if ( OptionalUnlabeledTracker::alreadyOptional() ) -        throw( SpecificationException( -	"You can't specify ANY Unlabeled Arg following an optional Unlabeled Arg", -	                argName ) ); - -    if ( !req ) -        OptionalUnlabeledTracker::gotOptional(); -} - - -} // namespace TCLAP - -#endif diff --git a/src/tclap/.svn/text-base/StandardTraits.h.svn-base b/src/tclap/.svn/text-base/StandardTraits.h.svn-base deleted file mode 100755 index 151b851..0000000 --- a/src/tclap/.svn/text-base/StandardTraits.h.svn-base +++ /dev/null @@ -1,186 +0,0 @@ -// -*- Mode: c++; c-basic-offset: 4; tab-width: 4; -*- - -/****************************************************************************** - * - *  file:  StandardTraits.h - * - *  Copyright (c) 2007, Daniel Aarno, Michael E. Smoot . - *  All rights reverved. - * - *  See the file COPYING in the top directory of this distribution for - *  more information. - * - *  THE SOFTWARE IS PROVIDED _AS IS_, WITHOUT WARRANTY OF ANY KIND, EXPRESS - *  OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - *  THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - *  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - *  DEALINGS IN THE SOFTWARE. - * - *****************************************************************************/ - -// This is an internal tclap file, you should probably not have to -// include this directly - -#ifndef TCLAP_STANDARD_TRAITS_H -#define TCLAP_STANDARD_TRAITS_H - -#ifdef HAVE_CONFIG_H -#include <config.h> // To check for long long -#endif - -namespace TCLAP { - -// ====================================================================== -// Integer types -// ====================================================================== - -/** - * longs have value-like semantics. - */ -template<> -struct ArgTraits<long> { -    typedef ValueLike ValueCategory; -}; - -/** - * ints have value-like semantics. - */ -template<> -struct ArgTraits<int> { -    typedef ValueLike ValueCategory; -}; - -/** - * shorts have value-like semantics. - */ -template<> -struct ArgTraits<short> { -    typedef ValueLike ValueCategory; -}; - -/** - * chars have value-like semantics. - */ -template<> -struct ArgTraits<char> { -    typedef ValueLike ValueCategory; -}; - -#ifdef HAVE_LONG_LONG -/** - * long longs have value-like semantics. - */ -template<> -struct ArgTraits<long long> { -    typedef ValueLike ValueCategory; -}; -#endif - -// ====================================================================== -// Unsigned integer types -// ====================================================================== - -/** - * unsigned longs have value-like semantics. - */ -template<> -struct ArgTraits<unsigned long> { -    typedef ValueLike ValueCategory; -}; - -/** - * unsigned ints have value-like semantics. - */ -template<> -struct ArgTraits<unsigned int> { -    typedef ValueLike ValueCategory; -}; - -/** - * unsigned shorts have value-like semantics. - */ -template<> -struct ArgTraits<unsigned short> { -    typedef ValueLike ValueCategory; -}; - -/** - * unsigned chars have value-like semantics. - */ -template<> -struct ArgTraits<unsigned char> { -    typedef ValueLike ValueCategory; -}; - -#ifdef HAVE_LONG_LONG -/** - * unsigned long longs have value-like semantics. - */ -template<> -struct ArgTraits<unsigned long long> { -    typedef ValueLike ValueCategory; -}; -#endif - -// ====================================================================== -// Float types -// ====================================================================== - -/** - * floats have value-like semantics. - */ -template<> -struct ArgTraits<float> { -    typedef ValueLike ValueCategory; -}; - -/** - * doubles have value-like semantics. - */ -template<> -struct ArgTraits<double> { -    typedef ValueLike ValueCategory; -}; - -// ====================================================================== -// Other types -// ====================================================================== - -/** - * bools have value-like semantics. - */ -template<> -struct ArgTraits<bool> { -    typedef ValueLike ValueCategory; -}; - -/** - * wchar_ts have value-like semantics. - */ -/* -template<> -struct ArgTraits<wchar_t> { -    typedef ValueLike ValueCategory; -}; -*/ - -/** - * Strings have string like argument traits. - */ -template<> -struct ArgTraits<std::string> { -    typedef StringLike ValueCategory; -}; - -template<typename T> -void SetString(T &dst, const std::string &src) -{ -    dst = src; -} - -} // namespace - -#endif - diff --git a/src/tclap/.svn/text-base/StdOutput.h.svn-base b/src/tclap/.svn/text-base/StdOutput.h.svn-base deleted file mode 100755 index 9ceac0c..0000000 --- a/src/tclap/.svn/text-base/StdOutput.h.svn-base +++ /dev/null @@ -1,298 +0,0 @@ -// -*- Mode: c++; c-basic-offset: 4; tab-width: 4; -*- - -/******************************************************************************  - *  - *  file:  StdOutput.h - *  - *  Copyright (c) 2004, Michael E. Smoot - *  All rights reverved. - *  - *  See the file COPYING in the top directory of this distribution for - *  more information. - *   - *  THE SOFTWARE IS PROVIDED _AS IS_, WITHOUT WARRANTY OF ANY KIND, EXPRESS  - *  OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,  - *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL  - *  THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER  - *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING  - *  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER  - *  DEALINGS IN THE SOFTWARE.   - *   - *****************************************************************************/  - -#ifndef TCLAP_STDCMDLINEOUTPUT_H -#define TCLAP_STDCMDLINEOUTPUT_H - -#include <string> -#include <vector> -#include <list> -#include <iostream> -#include <algorithm> - -#include <tclap/CmdLineInterface.h> -#include <tclap/CmdLineOutput.h> -#include <tclap/XorHandler.h> -#include <tclap/Arg.h> - -namespace TCLAP { - -/** - * A class that isolates any output from the CmdLine object so that it - * may be easily modified. - */ -class StdOutput : public CmdLineOutput -{ - -	public: - -		/** -		 * Prints the usage to stdout.  Can be overridden to  -		 * produce alternative behavior. -		 * \param c - The CmdLine object the output is generated for.  -		 */ -		virtual void usage(CmdLineInterface& c); - -		/** -		 * Prints the version to stdout. Can be overridden  -		 * to produce alternative behavior. -		 * \param c - The CmdLine object the output is generated for.  -		 */ -		virtual void version(CmdLineInterface& c); - -		/** -		 * Prints (to stderr) an error message, short usage  -		 * Can be overridden to produce alternative behavior. -		 * \param c - The CmdLine object the output is generated for.  -		 * \param e - The ArgException that caused the failure.  -		 */ -		virtual void failure(CmdLineInterface& c,  -				     ArgException& e ); - -	protected: - -        /** -         * Writes a brief usage message with short args. -		 * \param c - The CmdLine object the output is generated for.  -         * \param os - The stream to write the message to. -         */ -        void _shortUsage( CmdLineInterface& c, std::ostream& os ) const; - -        /** -		 * Writes a longer usage message with long and short args,  -		 * provides descriptions and prints message. -		 * \param c - The CmdLine object the output is generated for.  -		 * \param os - The stream to write the message to. -		 */ -		void _longUsage( CmdLineInterface& c, std::ostream& os ) const; - -		/** -		 * This function inserts line breaks and indents long strings  -		 * according the  params input. It will only break lines at spaces,  -		 * commas and pipes. -		 * \param os - The stream to be printed to. -		 * \param s - The string to be printed. -		 * \param maxWidth - The maxWidth allowed for the output line.  -		 * \param indentSpaces - The number of spaces to indent the first line.  -		 * \param secondLineOffset - The number of spaces to indent the second -		 * and all subsequent lines in addition to indentSpaces. -		 */ -		void spacePrint( std::ostream& os,  -						 const std::string& s,  -						 int maxWidth,  -						 int indentSpaces,  -						 int secondLineOffset ) const; - -}; - - -inline void StdOutput::version(CmdLineInterface& _cmd)  -{ -	std::string progName = _cmd.getProgramName(); -	std::string version = _cmd.getVersion(); - -	std::cout << std::endl << progName << "  version: "  -			  << version << std::endl << std::endl; -} - -inline void StdOutput::usage(CmdLineInterface& _cmd )  -{ -	std::cout << std::endl << "USAGE: " << std::endl << std::endl;  - -	_shortUsage( _cmd, std::cout ); - -	std::cout << std::endl << std::endl << "Where: " << std::endl << std::endl; - -	_longUsage( _cmd, std::cout ); - -	std::cout << std::endl;  - -} - -inline void StdOutput::failure( CmdLineInterface& _cmd, -								ArgException& e )  -{ -	std::string progName = _cmd.getProgramName(); - -	std::cerr << "PARSE ERROR: " << e.argId() << std::endl -		      << "             " << e.error() << std::endl << std::endl; - -	if ( _cmd.hasHelpAndVersion() ) -		{ -			std::cerr << "Brief USAGE: " << std::endl; - -			_shortUsage( _cmd, std::cerr );	 - -			std::cerr << std::endl << "For complete USAGE and HELP type: "  -					  << std::endl << "   " << progName << " --help"  -					  << std::endl << std::endl; -		} -	else -		usage(_cmd); - -	throw ExitException(1); -} - -inline void  -StdOutput::_shortUsage( CmdLineInterface& _cmd,  -						std::ostream& os ) const -{ -	std::list<Arg*> argList = _cmd.getArgList(); -	std::string progName = _cmd.getProgramName(); -	XorHandler xorHandler = _cmd.getXorHandler(); -	std::vector< std::vector<Arg*> > xorList = xorHandler.getXorList(); - -	std::string s = progName + " "; - -	// first the xor -	for ( int i = 0; static_cast<unsigned int>(i) < xorList.size(); i++ ) -		{ -			s += " {"; -			for ( ArgVectorIterator it = xorList[i].begin();  -				  it != xorList[i].end(); it++ ) -				s += (*it)->shortID() + "|"; - -			s[s.length()-1] = '}'; -		} - -	// then the rest -	for (ArgListIterator it = argList.begin(); it != argList.end(); it++) -		if ( !xorHandler.contains( (*it) ) ) -			s += " " + (*it)->shortID(); - -	// if the program name is too long, then adjust the second line offset  -	int secondLineOffset = static_cast<int>(progName.length()) + 2; -	if ( secondLineOffset > 75/2 ) -		secondLineOffset = static_cast<int>(75/2); - -	spacePrint( os, s, 75, 3, secondLineOffset ); -} - -inline void  -StdOutput::_longUsage( CmdLineInterface& _cmd,  -					   std::ostream& os ) const -{ -	std::list<Arg*> argList = _cmd.getArgList(); -	std::string message = _cmd.getMessage(); -	XorHandler xorHandler = _cmd.getXorHandler(); -	std::vector< std::vector<Arg*> > xorList = xorHandler.getXorList(); - -	// first the xor  -	for ( int i = 0; static_cast<unsigned int>(i) < xorList.size(); i++ ) -		{ -			for ( ArgVectorIterator it = xorList[i].begin();  -				  it != xorList[i].end();  -				  it++ ) -				{ -					spacePrint( os, (*it)->longID(), 75, 3, 3 ); -					spacePrint( os, (*it)->getDescription(), 75, 5, 0 ); - -					if ( it+1 != xorList[i].end() ) -						spacePrint(os, "-- OR --", 75, 9, 0); -				} -			os << std::endl << std::endl; -		} - -	// then the rest -	for (ArgListIterator it = argList.begin(); it != argList.end(); it++) -		if ( !xorHandler.contains( (*it) ) ) -			{ -				spacePrint( os, (*it)->longID(), 75, 3, 3 );  -				spacePrint( os, (*it)->getDescription(), 75, 5, 0 );  -				os << std::endl; -			} - -	os << std::endl; - -	spacePrint( os, message, 75, 3, 0 ); -} - -inline void StdOutput::spacePrint( std::ostream& os,  -						           const std::string& s,  -						           int maxWidth,  -						           int indentSpaces,  -						           int secondLineOffset ) const -{ -	int len = static_cast<int>(s.length()); - -	if ( (len + indentSpaces > maxWidth) && maxWidth > 0 ) -		{ -			int allowedLen = maxWidth - indentSpaces; -			int start = 0; -			while ( start < len ) -				{ -					// find the substring length -					// int stringLen = std::min<int>( len - start, allowedLen ); -					// doing it this way to support a VisualC++ 2005 bug  -					using namespace std;  -					int stringLen = min<int>( len - start, allowedLen ); - -					// trim the length so it doesn't end in middle of a word -					if ( stringLen == allowedLen ) -						while ( stringLen >= 0 && -								s[stringLen+start] != ' ' &&  -								s[stringLen+start] != ',' && -								s[stringLen+start] != '|' )  -							stringLen--; -	 -					// ok, the word is longer than the line, so just split  -					// wherever the line ends -					if ( stringLen <= 0 ) -						stringLen = allowedLen; - -					// check for newlines -					for ( int i = 0; i < stringLen; i++ ) -						if ( s[start+i] == '\n' ) -							stringLen = i+1; - -					// print the indent	 -					for ( int i = 0; i < indentSpaces; i++ ) -						os << " "; - -					if ( start == 0 ) -						{ -							// handle second line offsets -							indentSpaces += secondLineOffset; - -							// adjust allowed len -							allowedLen -= secondLineOffset; -						} - -					os << s.substr(start,stringLen) << std::endl; - -					// so we don't start a line with a space -					while ( s[stringLen+start] == ' ' && start < len ) -						start++; -			 -					start += stringLen; -				} -		} -	else -		{ -			for ( int i = 0; i < indentSpaces; i++ ) -				os << " "; -			os << s << std::endl; -		} -} - -} //namespace TCLAP -#endif  diff --git a/src/tclap/.svn/text-base/SwitchArg.h.svn-base b/src/tclap/.svn/text-base/SwitchArg.h.svn-base deleted file mode 100755 index dc4952e..0000000 --- a/src/tclap/.svn/text-base/SwitchArg.h.svn-base +++ /dev/null @@ -1,228 +0,0 @@ - -/******************************************************************************  - *  - *  file:  SwitchArg.h - *  - *  Copyright (c) 2003, Michael E. Smoot . - *  Copyright (c) 2004, Michael E. Smoot, Daniel Aarno. - *  All rights reverved. - *  - *  See the file COPYING in the top directory of this distribution for - *  more information. - *   - *  THE SOFTWARE IS PROVIDED _AS IS_, WITHOUT WARRANTY OF ANY KIND, EXPRESS  - *  OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,  - *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL  - *  THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER  - *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING  - *  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER  - *  DEALINGS IN THE SOFTWARE.   - *   - *****************************************************************************/  - - -#ifndef TCLAP_SWITCH_ARG_H -#define TCLAP_SWITCH_ARG_H - -#include <string> -#include <vector> - -#include <tclap/Arg.h> - -namespace TCLAP { - -/** - * A simple switch argument.  If the switch is set on the command line, then - * the getValue method will return the opposite of the default value for the - * switch. - */ -class SwitchArg : public Arg -{ -	protected: - -		/** -		 * The value of the switch. -		 */ -		bool _value; - -		/** -		 * Used to support the reset() method so that ValueArg can be -		 * reset to their constructed value. -		 */ -        bool _default; - -	public: - -        /** -		 * SwitchArg constructor. -		 * \param flag - The one character flag that identifies this -		 * argument on the command line. -		 * \param name - A one word name for the argument.  Can be -		 * used as a long flag on the command line. -		 * \param desc - A description of what the argument is for or -		 * does. -		 * \param def - The default value for this Switch.  -		 * \param v - An optional visitor.  You probably should not -		 * use this unless you have a very good reason. -		 */ -		SwitchArg(const std::string& flag,  -			      const std::string& name,  -			      const std::string& desc, -			      bool def = false, -				  Visitor* v = NULL); - -				   -		/** -		 * SwitchArg constructor. -		 * \param flag - The one character flag that identifies this -		 * argument on the command line. -		 * \param name - A one word name for the argument.  Can be -		 * used as a long flag on the command line. -		 * \param desc - A description of what the argument is for or -		 * does. -		 * \param parser - A CmdLine parser object to add this Arg to -		 * \param def - The default value for this Switch. -		 * \param v - An optional visitor.  You probably should not -		 * use this unless you have a very good reason. -		 */ -		SwitchArg(const std::string& flag,  -			      const std::string& name,  -			      const std::string& desc, -				  CmdLineInterface& parser, -			      bool def = false, -				  Visitor* v = NULL); -				   -				   -        /** -		 * Handles the processing of the argument. -		 * This re-implements the Arg version of this method to set the -		 * _value of the argument appropriately. -		 * \param i - Pointer the the current argument in the list. -		 * \param args - Mutable list of strings. Passed -		 * in from main(). -		 */ -		virtual bool processArg(int* i, std::vector<std::string>& args);  - -		/** -		 * Checks a string to see if any of the chars in the string -		 * match the flag for this Switch. -		 */ -		bool combinedSwitchesMatch(std::string& combined); - -		/** -		 * Returns bool, whether or not the switch has been set. -		 */ -		bool getValue(); -		 -		virtual void reset(); - -}; - -////////////////////////////////////////////////////////////////////// -//BEGIN SwitchArg.cpp -////////////////////////////////////////////////////////////////////// -inline SwitchArg::SwitchArg(const std::string& flag,  -	 		         const std::string& name,  -     		   		 const std::string& desc,  -	     	    	 bool default_val, -					 Visitor* v ) -: Arg(flag, name, desc, false, false, v), -  _value( default_val ), -  _default( default_val ) -{ } - -inline SwitchArg::SwitchArg(const std::string& flag,  -					const std::string& name,  -					const std::string& desc,  -					CmdLineInterface& parser, -					bool default_val, -					Visitor* v ) -: Arg(flag, name, desc, false, false, v), -  _value( default_val ), -  _default(default_val) -{  -	parser.add( this ); -} - -inline bool SwitchArg::getValue() { return _value; } - -inline bool SwitchArg::combinedSwitchesMatch(std::string& combinedSwitches ) -{ -	// make sure this is actually a combined switch -	if ( combinedSwitches.length() > 0 && -	     combinedSwitches[0] != Arg::flagStartString()[0] ) -		return false; - -	// make sure it isn't a long name  -	if ( combinedSwitches.substr( 0, Arg::nameStartString().length() ) ==  -		 Arg::nameStartString() ) -		return false; - -	// make sure the delimiter isn't in the string  -	if ( combinedSwitches.find_first_of( Arg::delimiter() ) != std::string::npos ) -		return false; - -	// ok, we're not specifying a ValueArg, so we know that we have -	// a combined switch list.   -	for ( unsigned int i = 1; i < combinedSwitches.length(); i++ ) -		if ( _flag.length() > 0 &&  -		     combinedSwitches[i] == _flag[0] && -		     _flag[0] != Arg::flagStartString()[0] )  -		{ -			// update the combined switches so this one is no longer present -			// this is necessary so that no unlabeled args are matched -			// later in the processing. -			//combinedSwitches.erase(i,1); -			combinedSwitches[i] = Arg::blankChar();  -			return true; -		} - -	// none of the switches passed in the list match.  -	return false;	 -} - - -inline bool SwitchArg::processArg(int *i, std::vector<std::string>& args) -{ -	if ( _ignoreable && Arg::ignoreRest() ) -		return false; - -	if ( argMatches( args[*i] ) || combinedSwitchesMatch( args[*i] ) ) -	{ -		// If we match on a combined switch, then we want to return false -		// so that other switches in the combination will also have a -		// chance to match. -		bool ret = false; -		if ( argMatches( args[*i] ) ) -			ret = true; - -		if ( _alreadySet || ( !ret && combinedSwitchesMatch( args[*i] ) ) ) -			throw(CmdLineParseException("Argument already set!", toString()));	 - -		_alreadySet = true; - -		if ( _value == true ) -			_value = false; -		else -			_value = true; - -		_checkWithVisitor(); - -		return ret; -	} -	else -		return false; -} - -inline void SwitchArg::reset() -{ -	Arg::reset(); -	_value = _default;   -} -////////////////////////////////////////////////////////////////////// -//End SwitchArg.cpp -////////////////////////////////////////////////////////////////////// - -} //namespace TCLAP - -#endif diff --git a/src/tclap/.svn/text-base/UnlabeledMultiArg.h.svn-base b/src/tclap/.svn/text-base/UnlabeledMultiArg.h.svn-base deleted file mode 100755 index d5e1781..0000000 --- a/src/tclap/.svn/text-base/UnlabeledMultiArg.h.svn-base +++ /dev/null @@ -1,301 +0,0 @@ - -/******************************************************************************  - *  - *  file:  UnlabeledMultiArg.h - *  - *  Copyright (c) 2003, Michael E. Smoot. - *  All rights reverved. - *  - *  See the file COPYING in the top directory of this distribution for - *  more information. - *   - *  THE SOFTWARE IS PROVIDED _AS IS_, WITHOUT WARRANTY OF ANY KIND, EXPRESS  - *  OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,  - *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL  - *  THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER  - *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING  - *  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER  - *  DEALINGS IN THE SOFTWARE.   - *   - *****************************************************************************/  - - -#ifndef TCLAP_MULTIPLE_UNLABELED_ARGUMENT_H -#define TCLAP_MULTIPLE_UNLABELED_ARGUMENT_H - -#include <string> -#include <vector> - -#include <tclap/MultiArg.h> -#include <tclap/OptionalUnlabeledTracker.h> - -namespace TCLAP { - -/** - * Just like a MultiArg, except that the arguments are unlabeled.  Basically, - * this Arg will slurp up everything that hasn't been matched to another  - * Arg. - */ -template<class T> -class UnlabeledMultiArg : public MultiArg<T> -{ - -	// If compiler has two stage name lookup (as gcc >= 3.4 does) -	// this is requried to prevent undef. symbols -	using MultiArg<T>::_ignoreable; -	using MultiArg<T>::_hasBlanks; -	using MultiArg<T>::_extractValue; -	using MultiArg<T>::_typeDesc; -	using MultiArg<T>::_name; -	using MultiArg<T>::_description; -	using MultiArg<T>::_alreadySet; -	using MultiArg<T>::toString; - -	public: -		 -		/** -		 * Constructor.   -		 * \param name - The name of the Arg. Note that this is used for -		 * identification, not as a long flag. -		 * \param desc - A description of what the argument is for or -		 * does. -		 * \param req - Whether the argument is required on the command -		 *  line. -		 * \param typeDesc - A short, human readable description of the -		 * type that this object expects.  This is used in the generation -		 * of the USAGE statement.  The goal is to be helpful to the end user -		 * of the program. -		 * \param ignoreable - Whether or not this argument can be ignored -		 * using the "--" flag. -		 * \param v - An optional visitor.  You probably should not -		 * use this unless you have a very good reason. -		 */ -		UnlabeledMultiArg( const std::string& name, -				           const std::string& desc, -						   bool req, -				           const std::string& typeDesc, -						   bool ignoreable = false, -				           Visitor* v = NULL ); -		/** -		 * Constructor.   -		 * \param name - The name of the Arg. Note that this is used for -		 * identification, not as a long flag. -		 * \param desc - A description of what the argument is for or -		 * does. -		 * \param req - Whether the argument is required on the command -		 *  line. -		 * \param typeDesc - A short, human readable description of the -		 * type that this object expects.  This is used in the generation -		 * of the USAGE statement.  The goal is to be helpful to the end user -		 * of the program. -		 * \param parser - A CmdLine parser object to add this Arg to -		 * \param ignoreable - Whether or not this argument can be ignored -		 * using the "--" flag. -		 * \param v - An optional visitor.  You probably should not -		 * use this unless you have a very good reason. -		 */ -		UnlabeledMultiArg( const std::string& name, -				           const std::string& desc, -						   bool req, -				           const std::string& typeDesc, -						   CmdLineInterface& parser, -						   bool ignoreable = false, -				           Visitor* v = NULL ); -						  -		/** -		 * Constructor.   -		 * \param name - The name of the Arg. Note that this is used for -		 * identification, not as a long flag. -		 * \param desc - A description of what the argument is for or -		 * does. -		 * \param req - Whether the argument is required on the command -		 *  line. -		 * \param constraint - A pointer to a Constraint object used -		 * to constrain this Arg. -		 * \param ignoreable - Whether or not this argument can be ignored -		 * using the "--" flag. -		 * \param v - An optional visitor.  You probably should not -		 * use this unless you have a very good reason. -		 */ -		UnlabeledMultiArg( const std::string& name, -						   const std::string& desc, -						   bool req, -						   Constraint<T>* constraint, -						   bool ignoreable = false, -						   Visitor* v = NULL ); - -		/** -		 * Constructor.   -		 * \param name - The name of the Arg. Note that this is used for -		 * identification, not as a long flag. -		 * \param desc - A description of what the argument is for or -		 * does. -		 * \param req - Whether the argument is required on the command -		 *  line. -		 * \param constraint - A pointer to a Constraint object used -		 * to constrain this Arg. -		 * \param parser - A CmdLine parser object to add this Arg to -		 * \param ignoreable - Whether or not this argument can be ignored -		 * using the "--" flag. -		 * \param v - An optional visitor.  You probably should not -		 * use this unless you have a very good reason. -		 */ -		UnlabeledMultiArg( const std::string& name,  -						   const std::string& desc,  -						   bool req, -						   Constraint<T>* constraint, -						   CmdLineInterface& parser, -						   bool ignoreable = false, -						   Visitor* v = NULL ); -						  -		/** -		 * Handles the processing of the argument. -		 * This re-implements the Arg version of this method to set the -		 * _value of the argument appropriately.  It knows the difference -		 * between labeled and unlabeled. -		 * \param i - Pointer the the current argument in the list. -		 * \param args - Mutable list of strings. Passed from main(). -		 */ -		virtual bool processArg(int* i, std::vector<std::string>& args);  - -		/** -		 * Returns the a short id string.  Used in the usage. -		 * \param val - value to be used. -		 */ -		virtual std::string shortID(const std::string& val="val") const; - -		/** -		 * Returns the a long id string.  Used in the usage. -		 * \param val - value to be used. -		 */ -		virtual std::string longID(const std::string& val="val") const; - -		/** -		 * Opertor ==. -		 * \param a - The Arg to be compared to this. -		 */ -		virtual bool operator==(const Arg& a) const; - -		/** -		 * Pushes this to back of list rather than front. -		 * \param argList - The list this should be added to. -		 */ -		virtual void addToList( std::list<Arg*>& argList ) const; -}; - -template<class T> -UnlabeledMultiArg<T>::UnlabeledMultiArg(const std::string& name,  -				                        const std::string& desc,  -										bool req, -					                    const std::string& typeDesc, -										bool ignoreable, -					                    Visitor* v) -: MultiArg<T>("", name, desc,  req, typeDesc, v) -{  -	_ignoreable = ignoreable; -	OptionalUnlabeledTracker::check(true, toString()); -} - -template<class T> -UnlabeledMultiArg<T>::UnlabeledMultiArg(const std::string& name,  -				                        const std::string& desc,  -										bool req, -					                    const std::string& typeDesc, -										CmdLineInterface& parser, -										bool ignoreable, -					                    Visitor* v) -: MultiArg<T>("", name, desc,  req, typeDesc, v) -{  -	_ignoreable = ignoreable; -	OptionalUnlabeledTracker::check(true, toString()); -	parser.add( this ); -} - - -template<class T> -UnlabeledMultiArg<T>::UnlabeledMultiArg(const std::string& name,  -				                        const std::string& desc,  -										bool req, -					                    Constraint<T>* constraint, -										bool ignoreable, -					                    Visitor* v) -: MultiArg<T>("", name, desc,  req, constraint, v) -{  -	_ignoreable = ignoreable; -	OptionalUnlabeledTracker::check(true, toString()); -} - -template<class T> -UnlabeledMultiArg<T>::UnlabeledMultiArg(const std::string& name,  -				                        const std::string& desc,  -										bool req, -					                    Constraint<T>* constraint, -										CmdLineInterface& parser, -										bool ignoreable, -					                    Visitor* v) -: MultiArg<T>("", name, desc,  req, constraint, v) -{  -	_ignoreable = ignoreable; -	OptionalUnlabeledTracker::check(true, toString()); -	parser.add( this ); -} - - -template<class T> -bool UnlabeledMultiArg<T>::processArg(int *i, std::vector<std::string>& args)  -{ - -	if ( _hasBlanks( args[*i] ) ) -		return false; - -	// never ignore an unlabeled multi arg - - -	// always take the first value, regardless of the start string  -	_extractValue( args[(*i)] ); - -	/* -	// continue taking args until we hit the end or a start string  -	while ( (unsigned int)(*i)+1 < args.size() && -			args[(*i)+1].find_first_of( Arg::flagStartString() ) != 0 && -            args[(*i)+1].find_first_of( Arg::nameStartString() ) != 0 )  -		_extractValue( args[++(*i)] ); -	*/ - -	_alreadySet = true; - -	return true; -} - -template<class T> -std::string UnlabeledMultiArg<T>::shortID(const std::string& val) const -{ -	static_cast<void>(val); // Ignore input, don't warn -	return std::string("<") + _typeDesc + "> ..."; -} - -template<class T> -std::string UnlabeledMultiArg<T>::longID(const std::string& val) const -{ -	static_cast<void>(val); // Ignore input, don't warn -	return std::string("<") + _typeDesc + ">  (accepted multiple times)"; -} - -template<class T> -bool UnlabeledMultiArg<T>::operator==(const Arg& a) const -{ -	if ( _name == a.getName() || _description == a.getDescription() ) -		return true; -	else -		return false; -} - -template<class T> -void UnlabeledMultiArg<T>::addToList( std::list<Arg*>& argList ) const -{ -	argList.push_back( const_cast<Arg*>(static_cast<const Arg* const>(this)) ); -} - -} - -#endif diff --git a/src/tclap/.svn/text-base/UnlabeledValueArg.h.svn-base b/src/tclap/.svn/text-base/UnlabeledValueArg.h.svn-base deleted file mode 100755 index 5721d61..0000000 --- a/src/tclap/.svn/text-base/UnlabeledValueArg.h.svn-base +++ /dev/null @@ -1,340 +0,0 @@ - -/******************************************************************************  - *  - *  file:  UnlabeledValueArg.h - *  - *  Copyright (c) 2003, Michael E. Smoot . - *  Copyright (c) 2004, Michael E. Smoot, Daniel Aarno. - *  All rights reverved. - *  - *  See the file COPYING in the top directory of this distribution for - *  more information. - *   - *  THE SOFTWARE IS PROVIDED _AS IS_, WITHOUT WARRANTY OF ANY KIND, EXPRESS  - *  OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,  - *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL  - *  THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER  - *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING  - *  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER  - *  DEALINGS IN THE SOFTWARE.   - *   - *****************************************************************************/  - - -#ifndef TCLAP_UNLABELED_VALUE_ARGUMENT_H -#define TCLAP_UNLABELED_VALUE_ARGUMENT_H - -#include <string> -#include <vector> - -#include <tclap/ValueArg.h> -#include <tclap/OptionalUnlabeledTracker.h> - - -namespace TCLAP { - -/** - * The basic unlabeled argument that parses a value. - * This is a template class, which means the type T defines the type - * that a given object will attempt to parse when an UnlabeledValueArg - * is reached in the list of args that the CmdLine iterates over. - */ -template<class T> -class UnlabeledValueArg : public ValueArg<T> -{ - -	// If compiler has two stage name lookup (as gcc >= 3.4 does) -	// this is requried to prevent undef. symbols -	using ValueArg<T>::_ignoreable; -	using ValueArg<T>::_hasBlanks; -	using ValueArg<T>::_extractValue; -	using ValueArg<T>::_typeDesc; -	using ValueArg<T>::_name; -	using ValueArg<T>::_description; -	using ValueArg<T>::_alreadySet; -	using ValueArg<T>::toString; - -	public: - -		/** -		 * UnlabeledValueArg constructor. -		 * \param name - A one word name for the argument.  Note that this is used for -		 * identification, not as a long flag. -		 * \param desc - A description of what the argument is for or -		 * does. -		 * \param req - Whether the argument is required on the command -		 * line. -		 * \param value - The default value assigned to this argument if it -		 * is not present on the command line. -		 * \param typeDesc - A short, human readable description of the -		 * type that this object expects.  This is used in the generation -		 * of the USAGE statement.  The goal is to be helpful to the end user -		 * of the program. -		 * \param ignoreable - Allows you to specify that this argument can be -		 * ignored if the '--' flag is set.  This defaults to false (cannot -		 * be ignored) and should  generally stay that way unless you have  -		 * some special need for certain arguments to be ignored. -		 * \param v - Optional Vistor.  You should leave this blank unless -		 * you have a very good reason. -		 */ -		UnlabeledValueArg( const std::string& name,  -			               const std::string& desc,  -						   bool req, -				           T value, -				           const std::string& typeDesc, -						   bool ignoreable = false, -				           Visitor* v = NULL);  - -		/** -		 * UnlabeledValueArg constructor. -		 * \param name - A one word name for the argument.  Note that this is used for -		 * identification, not as a long flag. -		 * \param desc - A description of what the argument is for or -		 * does. -		 * \param req - Whether the argument is required on the command -		 * line. -		 * \param value - The default value assigned to this argument if it -		 * is not present on the command line. -		 * \param typeDesc - A short, human readable description of the -		 * type that this object expects.  This is used in the generation -		 * of the USAGE statement.  The goal is to be helpful to the end user -		 * of the program. -		 * \param parser - A CmdLine parser object to add this Arg to -		 * \param ignoreable - Allows you to specify that this argument can be -		 * ignored if the '--' flag is set.  This defaults to false (cannot -		 * be ignored) and should  generally stay that way unless you have  -		 * some special need for certain arguments to be ignored. -		 * \param v - Optional Vistor.  You should leave this blank unless -		 * you have a very good reason. -		 */ -		UnlabeledValueArg( const std::string& name,  -			               const std::string& desc,  -						   bool req, -				           T value, -				           const std::string& typeDesc, -						   CmdLineInterface& parser, -						   bool ignoreable = false, -				           Visitor* v = NULL ); 					 -						 -		/** -		 * UnlabeledValueArg constructor. -		 * \param name - A one word name for the argument.  Note that this is used for -		 * identification, not as a long flag. -		 * \param desc - A description of what the argument is for or -		 * does. -		 * \param req - Whether the argument is required on the command -		 * line. -		 * \param value - The default value assigned to this argument if it -		 * is not present on the command line. -		 * \param constraint - A pointer to a Constraint object used -		 * to constrain this Arg. -		 * \param ignoreable - Allows you to specify that this argument can be -		 * ignored if the '--' flag is set.  This defaults to false (cannot -		 * be ignored) and should  generally stay that way unless you have  -		 * some special need for certain arguments to be ignored. -		 * \param v - Optional Vistor.  You should leave this blank unless -		 * you have a very good reason. -		 */ -		UnlabeledValueArg( const std::string& name,  -			               const std::string& desc,  -						   bool req, -				           T value, -				           Constraint<T>* constraint, -						   bool ignoreable = false, -				           Visitor* v = NULL );  - -		 -		/** -		 * UnlabeledValueArg constructor. -		 * \param name - A one word name for the argument.  Note that this is used for -		 * identification, not as a long flag. -		 * \param desc - A description of what the argument is for or -		 * does. -		 * \param req - Whether the argument is required on the command -		 * line. -		 * \param value - The default value assigned to this argument if it -		 * is not present on the command line. -		 * \param constraint - A pointer to a Constraint object used -		 * to constrain this Arg. -		 * \param parser - A CmdLine parser object to add this Arg to -		 * \param ignoreable - Allows you to specify that this argument can be -		 * ignored if the '--' flag is set.  This defaults to false (cannot -		 * be ignored) and should  generally stay that way unless you have  -		 * some special need for certain arguments to be ignored. -		 * \param v - Optional Vistor.  You should leave this blank unless -		 * you have a very good reason. -		 */ -		UnlabeledValueArg( const std::string& name,  -			               const std::string& desc,  -						   bool req, -				           T value, -				           Constraint<T>* constraint, -						   CmdLineInterface& parser, -						   bool ignoreable = false, -				           Visitor* v = NULL); -						 -		/** -		 * Handles the processing of the argument. -		 * This re-implements the Arg version of this method to set the -		 * _value of the argument appropriately.  Handling specific to -		 * unlabled arguments. -		 * \param i - Pointer the the current argument in the list. -		 * \param args - Mutable list of strings.  -		 */ -		virtual bool processArg(int* i, std::vector<std::string>& args);  - -		/** -		 * Overrides shortID for specific behavior. -		 */ -		virtual std::string shortID(const std::string& val="val") const; - -		/** -		 * Overrides longID for specific behavior. -		 */ -		virtual std::string longID(const std::string& val="val") const; - -		/** -		 * Overrides operator== for specific behavior. -		 */ -		virtual bool operator==(const Arg& a ) const; - -		/** -		 * Instead of pushing to the front of list, push to the back. -		 * \param argList - The list to add this to. -		 */ -		virtual void addToList( std::list<Arg*>& argList ) const; - -}; - -/** - * Constructor implemenation. - */ -template<class T> -UnlabeledValueArg<T>::UnlabeledValueArg(const std::string& name,  -					                    const std::string& desc,  -										bool req, -					                    T val, -					                    const std::string& typeDesc, -					                    bool ignoreable, -					                    Visitor* v) -: ValueArg<T>("", name, desc, req, val, typeDesc, v) -{  -	_ignoreable = ignoreable; - -	OptionalUnlabeledTracker::check(req, toString()); - -} - -template<class T> -UnlabeledValueArg<T>::UnlabeledValueArg(const std::string& name,  -					                    const std::string& desc,  -										bool req, -					                    T val, -					                    const std::string& typeDesc, -					                    CmdLineInterface& parser, -					                    bool ignoreable, -					                    Visitor* v) -: ValueArg<T>("", name, desc, req, val, typeDesc, v) -{  -	_ignoreable = ignoreable; -	OptionalUnlabeledTracker::check(req, toString()); -	parser.add( this ); -} - -/** - * Constructor implemenation. - */ -template<class T> -UnlabeledValueArg<T>::UnlabeledValueArg(const std::string& name,  -                                        const std::string& desc,  -										bool req, -                                        T val, -                                        Constraint<T>* constraint, -                                        bool ignoreable, -                                        Visitor* v) -: ValueArg<T>("", name, desc, req, val, constraint, v) -{  -	_ignoreable = ignoreable; -	OptionalUnlabeledTracker::check(req, toString()); -} - -template<class T> -UnlabeledValueArg<T>::UnlabeledValueArg(const std::string& name,  -					                    const std::string& desc,  -										bool req, -					                    T val, -					                    Constraint<T>* constraint, -					                    CmdLineInterface& parser, -					                    bool ignoreable, -					                    Visitor* v) -: ValueArg<T>("", name, desc, req, val, constraint,  v) -{  -	_ignoreable = ignoreable; -	OptionalUnlabeledTracker::check(req, toString()); -	parser.add( this ); -} - -/** - * Implementation of processArg(). - */ -template<class T> -bool UnlabeledValueArg<T>::processArg(int *i, std::vector<std::string>& args)  -{ -	 -	if ( _alreadySet ) -		return false; -	 -	if ( _hasBlanks( args[*i] ) ) -		return false; - -	// never ignore an unlabeled arg -	 -	_extractValue( args[*i] ); -	_alreadySet = true; -	return true; -} - -/** - * Overriding shortID for specific output. - */ -template<class T> -std::string UnlabeledValueArg<T>::shortID(const std::string& val) const -{ -	static_cast<void>(val); // Ignore input, don't warn -	return std::string("<") + _typeDesc + ">"; -} - -/** - * Overriding longID for specific output. - */ -template<class T> -std::string UnlabeledValueArg<T>::longID(const std::string& val) const -{ -	static_cast<void>(val); // Ignore input, don't warn - -	// Ideally we would like to be able to use RTTI to return the name -	// of the type required for this argument.  However, g++ at least,  -	// doesn't appear to return terribly useful "names" of the types.   -	return std::string("<") + _typeDesc + ">"; -} - -/** - * Overriding operator== for specific behavior. - */ -template<class T> -bool UnlabeledValueArg<T>::operator==(const Arg& a ) const -{ -	if ( _name == a.getName() || _description == a.getDescription() ) -		return true; -	else -		return false; -} - -template<class T> -void UnlabeledValueArg<T>::addToList( std::list<Arg*>& argList ) const -{ -	argList.push_back( const_cast<Arg*>(static_cast<const Arg* const>(this)) ); -} - -} -#endif diff --git a/src/tclap/.svn/text-base/ValueArg.h.svn-base b/src/tclap/.svn/text-base/ValueArg.h.svn-base deleted file mode 100755 index 28117f6..0000000 --- a/src/tclap/.svn/text-base/ValueArg.h.svn-base +++ /dev/null @@ -1,411 +0,0 @@ -/******************************************************************************  - *  - *  file:  ValueArg.h - *  - *  Copyright (c) 2003, Michael E. Smoot . - *  Copyright (c) 2004, Michael E. Smoot, Daniel Aarno. - *  All rights reverved. - *  - *  See the file COPYING in the top directory of this distribution for - *  more information. - *   - *  THE SOFTWARE IS PROVIDED _AS IS_, WITHOUT WARRANTY OF ANY KIND, EXPRESS  - *  OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,  - *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL  - *  THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER  - *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING  - *  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER  - *  DEALINGS IN THE SOFTWARE.   - *   - *****************************************************************************/  - - -#ifndef TCLAP_VALUE_ARGUMENT_H -#define TCLAP_VALUE_ARGUMENT_H - -#include <string> -#include <vector> - -#include <tclap/Arg.h> -#include <tclap/Constraint.h> - -namespace TCLAP { - -/** - * The basic labeled argument that parses a value. - * This is a template class, which means the type T defines the type - * that a given object will attempt to parse when the flag/name is matched - * on the command line.  While there is nothing stopping you from creating - * an unflagged ValueArg, it is unwise and would cause significant problems. - * Instead use an UnlabeledValueArg. - */ -template<class T> -class ValueArg : public Arg  -{ -    protected: - -        /** -         * The value parsed from the command line. -         * Can be of any type, as long as the >> operator for the type -         * is defined. -         */ -        T _value; - -		/** -		 * Used to support the reset() method so that ValueArg can be -		 * reset to their constructed value. -		 */ -        T _default; - -        /** -         * A human readable description of the type to be parsed. -         * This is a hack, plain and simple.  Ideally we would use RTTI to -         * return the name of type T, but until there is some sort of -         * consistent support for human readable names, we are left to our -         * own devices. -         */ -        std::string _typeDesc; - -        /** -         * A Constraint this Arg must conform to.  -         */ -        Constraint<T>* _constraint; - -        /** -         * Extracts the value from the string. -         * Attempts to parse string as type T, if this fails an exception -         * is thrown. -         * \param val - value to be parsed.  -         */ -        void _extractValue( const std::string& val ); - -	public: - -        /** -         * Labeled ValueArg constructor. -         * You could conceivably call this constructor with a blank flag,  -         * but that would make you a bad person.  It would also cause -         * an exception to be thrown.   If you want an unlabeled argument,  -         * use the other constructor. -         * \param flag - The one character flag that identifies this -         * argument on the command line. -         * \param name - A one word name for the argument.  Can be -         * used as a long flag on the command line. -         * \param desc - A description of what the argument is for or -         * does. -         * \param req - Whether the argument is required on the command -         * line. -         * \param value - The default value assigned to this argument if it -         * is not present on the command line. -         * \param typeDesc - A short, human readable description of the -         * type that this object expects.  This is used in the generation -         * of the USAGE statement.  The goal is to be helpful to the end user -         * of the program. -         * \param v - An optional visitor.  You probably should not -         * use this unless you have a very good reason. -         */ -        ValueArg( const std::string& flag,  -                  const std::string& name,  -                  const std::string& desc,  -                  bool req,  -                  T value, -                  const std::string& typeDesc, -                  Visitor* v = NULL); -				  -				  -        /** -         * Labeled ValueArg constructor. -         * You could conceivably call this constructor with a blank flag,  -         * but that would make you a bad person.  It would also cause -         * an exception to be thrown.   If you want an unlabeled argument,  -         * use the other constructor. -         * \param flag - The one character flag that identifies this -         * argument on the command line. -         * \param name - A one word name for the argument.  Can be -         * used as a long flag on the command line. -         * \param desc - A description of what the argument is for or -         * does. -         * \param req - Whether the argument is required on the command -         * line. -         * \param value - The default value assigned to this argument if it -         * is not present on the command line. -         * \param typeDesc - A short, human readable description of the -         * type that this object expects.  This is used in the generation -         * of the USAGE statement.  The goal is to be helpful to the end user -         * of the program. -         * \param parser - A CmdLine parser object to add this Arg to -         * \param v - An optional visitor.  You probably should not -         * use this unless you have a very good reason. -         */ -        ValueArg( const std::string& flag,  -                  const std::string& name,  -                  const std::string& desc,  -                  bool req,  -                  T value, -                  const std::string& typeDesc, -                  CmdLineInterface& parser, -                  Visitor* v = NULL ); -  -        /** -         * Labeled ValueArg constructor. -         * You could conceivably call this constructor with a blank flag,  -         * but that would make you a bad person.  It would also cause -         * an exception to be thrown.   If you want an unlabeled argument,  -         * use the other constructor. -         * \param flag - The one character flag that identifies this -         * argument on the command line. -         * \param name - A one word name for the argument.  Can be -         * used as a long flag on the command line. -         * \param desc - A description of what the argument is for or -         * does. -         * \param req - Whether the argument is required on the command -         * line. -         * \param value - The default value assigned to this argument if it -         * is not present on the command line. -         * \param constraint - A pointer to a Constraint object used -		 * to constrain this Arg. -         * \param parser - A CmdLine parser object to add this Arg to. -         * \param v - An optional visitor.  You probably should not -         * use this unless you have a very good reason. -         */ -        ValueArg( const std::string& flag,  -                  const std::string& name,  -                  const std::string& desc,  -                  bool req,  -                  T value, -                  Constraint<T>* constraint, -                  CmdLineInterface& parser, -                  Visitor* v = NULL ); -	   -        /** -         * Labeled ValueArg constructor. -         * You could conceivably call this constructor with a blank flag,  -         * but that would make you a bad person.  It would also cause -         * an exception to be thrown.   If you want an unlabeled argument,  -         * use the other constructor. -         * \param flag - The one character flag that identifies this -         * argument on the command line. -         * \param name - A one word name for the argument.  Can be -         * used as a long flag on the command line. -         * \param desc - A description of what the argument is for or -         * does. -         * \param req - Whether the argument is required on the command -         * line. -         * \param value - The default value assigned to this argument if it -         * is not present on the command line. -         * \param constraint - A pointer to a Constraint object used -		 * to constrain this Arg. -         * \param v - An optional visitor.  You probably should not -         * use this unless you have a very good reason. -         */ -        ValueArg( const std::string& flag,  -                  const std::string& name,  -                  const std::string& desc,  -                  bool req,  -                  T value, -                  Constraint<T>* constraint, -                  Visitor* v = NULL ); - -        /** -         * Handles the processing of the argument. -         * This re-implements the Arg version of this method to set the -         * _value of the argument appropriately.  It knows the difference -         * between labeled and unlabeled. -         * \param i - Pointer the the current argument in the list. -         * \param args - Mutable list of strings. Passed  -         * in from main(). -         */ -        virtual bool processArg(int* i, std::vector<std::string>& args);  - -        /** -         * Returns the value of the argument. -         */ -        T& getValue() ; - -        /** -         * Specialization of shortID. -         * \param val - value to be used. -         */ -        virtual std::string shortID(const std::string& val = "val") const; - -        /** -         * Specialization of longID. -         * \param val - value to be used. -         */ -        virtual std::string longID(const std::string& val = "val") const; -         -        virtual void reset() ; - -}; - - -/** - * Constructor implementation. - */ -template<class T> -ValueArg<T>::ValueArg(const std::string& flag,  -                      const std::string& name,  -                      const std::string& desc,  -                      bool req,  -                      T val, -                      const std::string& typeDesc, -                      Visitor* v) -: Arg(flag, name, desc, req, true, v), -  _value( val ), -  _default( val ), -  _typeDesc( typeDesc ), -  _constraint( NULL ) -{ } - -template<class T> -ValueArg<T>::ValueArg(const std::string& flag,  -                      const std::string& name,  -                      const std::string& desc,  -                      bool req,  -                      T val, -                      const std::string& typeDesc, -                      CmdLineInterface& parser, -                      Visitor* v) -: Arg(flag, name, desc, req, true, v), -  _value( val ), -  _default( val ), -  _typeDesc( typeDesc ), -  _constraint( NULL ) -{  -    parser.add( this ); -} - -template<class T> -ValueArg<T>::ValueArg(const std::string& flag,  -                      const std::string& name,  -                      const std::string& desc,  -                      bool req,  -                      T val, -                      Constraint<T>* constraint, -                      Visitor* v) -: Arg(flag, name, desc, req, true, v), -  _value( val ), -  _default( val ), -  _typeDesc( constraint->shortID() ), -  _constraint( constraint ) -{ } - -template<class T> -ValueArg<T>::ValueArg(const std::string& flag,  -                      const std::string& name,  -                      const std::string& desc,  -                      bool req,  -                      T val, -                      Constraint<T>* constraint, -                      CmdLineInterface& parser, -                      Visitor* v) -: Arg(flag, name, desc, req, true, v), -  _value( val ), -  _default( val ), -  _typeDesc( constraint->shortID() ), -  _constraint( constraint ) -{  -    parser.add( this ); -} - - -/** - * Implementation of getValue(). - */ -template<class T> -T& ValueArg<T>::getValue() { return _value; } - -/** - * Implementation of processArg(). - */ -template<class T> -bool ValueArg<T>::processArg(int *i, std::vector<std::string>& args) -{ -    if ( _ignoreable && Arg::ignoreRest() ) -		return false; - -    if ( _hasBlanks( args[*i] ) ) -		return false; - -    std::string flag = args[*i]; - -    std::string value = ""; -    trimFlag( flag, value ); - -    if ( argMatches( flag ) ) -    { -        if ( _alreadySet ) -			throw( CmdLineParseException("Argument already set!", toString()) ); - -        if ( Arg::delimiter() != ' ' && value == "" ) -			throw( ArgParseException(  -							"Couldn't find delimiter for this argument!", -                             toString() ) ); - -        if ( value == "" ) -        { -            (*i)++; -            if ( static_cast<unsigned int>(*i) < args.size() )  -				_extractValue( args[*i] ); -            else -				throw( ArgParseException("Missing a value for this argument!", -                                                    toString() ) ); -        } -        else -			_extractValue( value ); -				 -        _alreadySet = true; -        _checkWithVisitor(); -        return true; -    }	 -    else -		return false; -} - -/** - * Implementation of shortID. - */ -template<class T> -std::string ValueArg<T>::shortID(const std::string& val) const -{ -	static_cast<void>(val); // Ignore input, don't warn -	return Arg::shortID( _typeDesc );  -} - -/** - * Implementation of longID. - */ -template<class T> -std::string ValueArg<T>::longID(const std::string& val) const -{ -	static_cast<void>(val); // Ignore input, don't warn -	return Arg::longID( _typeDesc );  -} - -template<class T> -void ValueArg<T>::_extractValue( const std::string& val )  -{ -    try { -	ExtractValue(_value, val, typename ArgTraits<T>::ValueCategory()); -    } catch( ArgParseException &e) { -	throw ArgParseException(e.error(), toString()); -    } -     -    if ( _constraint != NULL ) -	if ( ! _constraint->check( _value ) ) -	    throw( CmdLineParseException( "Value '" + val +  -					  + "' does not meet constraint: "  -					  + _constraint->description(), -					  toString() ) ); -} - -template<class T> -void ValueArg<T>::reset() -{ -	Arg::reset(); -	_value = _default; -} - -} // namespace TCLAP - -#endif diff --git a/src/tclap/.svn/text-base/ValuesConstraint.h.svn-base b/src/tclap/.svn/text-base/ValuesConstraint.h.svn-base deleted file mode 100755 index 235939c..0000000 --- a/src/tclap/.svn/text-base/ValuesConstraint.h.svn-base +++ /dev/null @@ -1,147 +0,0 @@ - - -/******************************************************************************  - *  - *  file:  ValuesConstraint.h - *  - *  Copyright (c) 2005, Michael E. Smoot - *  All rights reverved. - *  - *  See the file COPYING in the top directory of this distribution for - *  more information. - *   - *  THE SOFTWARE IS PROVIDED _AS IS_, WITHOUT WARRANTY OF ANY KIND, EXPRESS  - *  OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,  - *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL  - *  THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER  - *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING  - *  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER  - *  DEALINGS IN THE SOFTWARE.   - *   - *****************************************************************************/  - -#ifndef TCLAP_VALUESCONSTRAINT_H -#define TCLAP_VALUESCONSTRAINT_H - -#include <string> -#include <vector> -#include <tclap/Constraint.h> - -#ifdef HAVE_CONFIG_H -#include <config.h> -#else -#define HAVE_SSTREAM -#endif - -#if defined(HAVE_SSTREAM) -#include <sstream> -#elif defined(HAVE_STRSTREAM) -#include <strstream> -#else -#error "Need a stringstream (sstream or strstream) to compile!" -#endif - -namespace TCLAP { - -/** - * A Constraint that constrains the Arg to only those values specified - * in the constraint. - */ -template<class T> -class ValuesConstraint : public Constraint<T> -{ - -	public: - -		/** -		 * Constructor.  -		 * \param allowed - vector of allowed values.  -		 */ -		ValuesConstraint(std::vector<T>& allowed);	 - -		/** -		 * Virtual destructor. -		 */ -		virtual ~ValuesConstraint() {} - -		/** -		 * Returns a description of the Constraint.  -		 */ -		virtual std::string description() const; - -		/** -		 * Returns the short ID for the Constraint. -		 */ -		virtual std::string shortID() const; - -		/** -		 * The method used to verify that the value parsed from the command -		 * line meets the constraint. -		 * \param value - The value that will be checked.  -		 */ -		virtual bool check(const T& value) const; -	 -	protected: - -		/** -		 * The list of valid values.  -		 */ -		std::vector<T> _allowed; - -		/** -		 * The string used to describe the allowed values of this constraint. -		 */ -		std::string _typeDesc; - -}; - -template<class T> -ValuesConstraint<T>::ValuesConstraint(std::vector<T>& allowed) -: _allowed(allowed) -{  -    for ( unsigned int i = 0; i < _allowed.size(); i++ ) -    { - -#if defined(HAVE_SSTREAM) -        std::ostringstream os; -#elif defined(HAVE_STRSTREAM) -        std::ostrstream os; -#else -#error "Need a stringstream (sstream or strstream) to compile!" -#endif - -        os << _allowed[i]; - -        std::string temp( os.str() );  - -        if ( i > 0 ) -			_typeDesc += "|"; -        _typeDesc += temp; -    } -} - -template<class T> -bool ValuesConstraint<T>::check( const T& val ) const -{ -	if ( std::find(_allowed.begin(),_allowed.end(),val) == _allowed.end() ) -		return false; -	else  -		return true; -} - -template<class T> -std::string ValuesConstraint<T>::shortID() const -{ -    return _typeDesc;	 -} - -template<class T> -std::string ValuesConstraint<T>::description() const -{ -    return _typeDesc;	 -} - - -} //namespace TCLAP -#endif  - diff --git a/src/tclap/.svn/text-base/VersionVisitor.h.svn-base b/src/tclap/.svn/text-base/VersionVisitor.h.svn-base deleted file mode 100755 index 3e55921..0000000 --- a/src/tclap/.svn/text-base/VersionVisitor.h.svn-base +++ /dev/null @@ -1,74 +0,0 @@ -// -*- Mode: c++; c-basic-offset: 4; tab-width: 4; -*- - -/******************************************************************************  - *  - *  file:  VersionVisitor.h - *  - *  Copyright (c) 2003, Michael E. Smoot . - *  All rights reverved. - *  - *  See the file COPYING in the top directory of this distribution for - *  more information. - *   - *  THE SOFTWARE IS PROVIDED _AS IS_, WITHOUT WARRANTY OF ANY KIND, EXPRESS  - *  OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,  - *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL  - *  THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER  - *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING  - *  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER  - *  DEALINGS IN THE SOFTWARE.   - *   - *****************************************************************************/  - - -#ifndef TCLAP_VERSION_VISITOR_H -#define TCLAP_VERSION_VISITOR_H - -#include <tclap/CmdLineInterface.h> -#include <tclap/CmdLineOutput.h> -#include <tclap/Visitor.h> - -namespace TCLAP { - -/** - * A Vistor that will call the version method of the given CmdLineOutput - * for the specified CmdLine object and then exit. - */ -class VersionVisitor: public Visitor -{ -	protected: - -		/** -		 * The CmdLine of interest. -		 */ -		CmdLineInterface* _cmd; - -		/** -		 * The output object.  -		 */ -		CmdLineOutput** _out; - -	public: - -		/** -		 * Constructor. -		 * \param cmd - The CmdLine the output is generated for.  -		 * \param out - The type of output.  -		 */ -		VersionVisitor( CmdLineInterface* cmd, CmdLineOutput** out )  -				: Visitor(), _cmd( cmd ), _out( out ) { } - -		/** -		 * Calls the version method of the output object using the -		 * specified CmdLine. -		 */ -		void visit() {  -		    (*_out)->version(*_cmd);  -		    throw ExitException(0);  -		} - -}; - -} - -#endif diff --git a/src/tclap/.svn/text-base/Visitor.h.svn-base b/src/tclap/.svn/text-base/Visitor.h.svn-base deleted file mode 100755 index 38ddcbd..0000000 --- a/src/tclap/.svn/text-base/Visitor.h.svn-base +++ /dev/null @@ -1,53 +0,0 @@ - -/******************************************************************************  - *  - *  file:  Visitor.h - *  - *  Copyright (c) 2003, Michael E. Smoot . - *  All rights reverved. - *  - *  See the file COPYING in the top directory of this distribution for - *  more information. - *   - *  THE SOFTWARE IS PROVIDED _AS IS_, WITHOUT WARRANTY OF ANY KIND, EXPRESS  - *  OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,  - *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL  - *  THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER  - *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING  - *  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER  - *  DEALINGS IN THE SOFTWARE.   - *   - *****************************************************************************/  - - -#ifndef TCLAP_VISITOR_H -#define TCLAP_VISITOR_H - -namespace TCLAP { - -/** - * A base class that defines the interface for visitors. - */ -class Visitor -{ -	public: - -		/** -		 * Constructor. Does nothing. -		 */ -		Visitor() { } - -		/** -		 * Destructor. Does nothing. -		 */ -		virtual ~Visitor() { } - -		/** -		 * Does nothing. Should be overridden by child. -		 */ -		virtual void visit() { } -}; - -} - -#endif diff --git a/src/tclap/.svn/text-base/XorHandler.h.svn-base b/src/tclap/.svn/text-base/XorHandler.h.svn-base deleted file mode 100755 index af68943..0000000 --- a/src/tclap/.svn/text-base/XorHandler.h.svn-base +++ /dev/null @@ -1,156 +0,0 @@ - -/******************************************************************************  - *  - *  file:  XorHandler.h - *  - *  Copyright (c) 2003, Michael E. Smoot . - *  Copyright (c) 2004, Michael E. Smoot, Daniel Aarno. - *  All rights reverved. - *  - *  See the file COPYING in the top directory of this distribution for - *  more information. - *   - *  THE SOFTWARE IS PROVIDED _AS IS_, WITHOUT WARRANTY OF ANY KIND, EXPRESS  - *  OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,  - *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL  - *  THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER  - *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING  - *  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER  - *  DEALINGS IN THE SOFTWARE.   - *   - *****************************************************************************/  - -#ifndef TCLAP_XORHANDLER_H -#define TCLAP_XORHANDLER_H - -#include <tclap/Arg.h> -#include <string> -#include <vector> -#include <algorithm> -#include <iostream> - -namespace TCLAP { - -/** - * This class handles lists of Arg's that are to be XOR'd on the command - * line.  This is used by CmdLine and you shouldn't ever use it. - */ -class XorHandler -{ -	protected: - -		/** -		 * The list of of lists of Arg's to be or'd together. -		 */ -		std::vector< std::vector<Arg*> > _orList; - -	public: - -		/** -		 * Constructor.  Does nothing. -		 */ -		XorHandler( ) {} - -		/** -		 * Add a list of Arg*'s that will be orred together. -		 * \param ors - list of Arg* that will be xor'd. -		 */ -		void add( std::vector<Arg*>& ors ); -			 -		/** -		 * Checks whether the specified Arg is in one of the xor lists and -		 * if it does match one, returns the size of the xor list that the -		 * Arg matched.  If the Arg matches, then it also sets the rest of -		 * the Arg's in the list. You shouldn't use this.   -		 * \param a - The Arg to be checked. -		 */ -		int check( const Arg* a ); - -		/** -		 * Returns the XOR specific short usage. -		 */ -		std::string shortUsage(); - -		/** -		 * Prints the XOR specific long usage. -		 * \param os - Stream to print to. -		 */ -		void printLongUsage(std::ostream& os); - -		/** -		 * Simply checks whether the Arg is contained in one of the arg -		 * lists. -		 * \param a - The Arg to be checked. -		 */ -		bool contains( const Arg* a ); - -		std::vector< std::vector<Arg*> >& getXorList();  - -}; - - -////////////////////////////////////////////////////////////////////// -//BEGIN XOR.cpp -////////////////////////////////////////////////////////////////////// -inline void XorHandler::add( std::vector<Arg*>& ors ) -{  -	_orList.push_back( ors ); -} - -inline int XorHandler::check( const Arg* a )  -{ -	// iterate over each XOR list -	for ( int i = 0; static_cast<unsigned int>(i) < _orList.size(); i++ ) -	{ -		// if the XOR list contains the arg.. -		ArgVectorIterator ait = std::find( _orList[i].begin(),  -		                                   _orList[i].end(), a ); -		if ( ait != _orList[i].end() ) -		{ -			// go through and set each arg that is not a -			for ( ArgVectorIterator it = _orList[i].begin();  -				  it != _orList[i].end();  -				  it++ )	 -				if ( a != (*it) ) -					(*it)->xorSet(); - -			// return the number of required args that have now been set -			if ( (*ait)->allowMore() ) -				return 0; -			else -				return static_cast<int>(_orList[i].size()); -		} -	} - -	if ( a->isRequired() ) -		return 1; -	else -		return 0; -} - -inline bool XorHandler::contains( const Arg* a ) -{ -	for ( int i = 0; static_cast<unsigned int>(i) < _orList.size(); i++ ) -		for ( ArgVectorIterator it = _orList[i].begin();  -			  it != _orList[i].end();  -			  it++ )	 -			if ( a == (*it) ) -				return true; - -	return false; -} - -inline std::vector< std::vector<Arg*> >& XorHandler::getXorList()  -{ -	return _orList; -} - - - -////////////////////////////////////////////////////////////////////// -//END XOR.cpp -////////////////////////////////////////////////////////////////////// - -} //namespace TCLAP - -#endif  diff --git a/src/tclap/.svn/text-base/ZshCompletionOutput.h.svn-base b/src/tclap/.svn/text-base/ZshCompletionOutput.h.svn-base deleted file mode 100755 index 1ed4381..0000000 --- a/src/tclap/.svn/text-base/ZshCompletionOutput.h.svn-base +++ /dev/null @@ -1,321 +0,0 @@ -// -*- Mode: c++; c-basic-offset: 4; tab-width: 4; -*- - -/******************************************************************************  - *  - *  file:  ZshCompletionOutput.h - *  - *  Copyright (c) 2006, Oliver Kiddle - *  All rights reverved. - *  - *  See the file COPYING in the top directory of this distribution for - *  more information. - *   - *  THE SOFTWARE IS PROVIDED _AS IS_, WITHOUT WARRANTY OF ANY KIND, EXPRESS  - *  OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,  - *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL  - *  THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER  - *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING  - *  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER  - *  DEALINGS IN THE SOFTWARE. - *   - *****************************************************************************/  - -#ifndef TCLAP_ZSHCOMPLETIONOUTPUT_H -#define TCLAP_ZSHCOMPLETIONOUTPUT_H - -#include <string> -#include <vector> -#include <list> -#include <iostream> -#include <map> - -#include <tclap/CmdLineInterface.h> -#include <tclap/CmdLineOutput.h> -#include <tclap/XorHandler.h> -#include <tclap/Arg.h> - -namespace TCLAP { - -/** - * A class that generates a Zsh completion function as output from the usage() - * method for the given CmdLine and its Args. - */ -class ZshCompletionOutput : public CmdLineOutput -{ - -	public: - -		ZshCompletionOutput(); - -		/** -		 * Prints the usage to stdout.  Can be overridden to  -		 * produce alternative behavior. -		 * \param c - The CmdLine object the output is generated for.  -		 */ -		virtual void usage(CmdLineInterface& c); - -		/** -		 * Prints the version to stdout. Can be overridden  -		 * to produce alternative behavior. -		 * \param c - The CmdLine object the output is generated for.  -		 */ -		virtual void version(CmdLineInterface& c); - -		/** -		 * Prints (to stderr) an error message, short usage  -		 * Can be overridden to produce alternative behavior. -		 * \param c - The CmdLine object the output is generated for.  -		 * \param e - The ArgException that caused the failure.  -		 */ -		virtual void failure(CmdLineInterface& c, -						     ArgException& e ); - -	protected: - -		void basename( std::string& s ); -		void quoteSpecialChars( std::string& s ); - -		std::string getMutexList( CmdLineInterface& _cmd, Arg* a ); -		void printOption( Arg* it, std::string mutex ); -		void printArg( Arg* it ); - -		std::map<std::string, std::string> common; -		char theDelimiter; -}; - -ZshCompletionOutput::ZshCompletionOutput() -{ -	common["host"] = "_hosts"; -	common["hostname"] = "_hosts"; -	common["file"] = "_files"; -	common["filename"] = "_files"; -	common["user"] = "_users"; -	common["username"] = "_users"; -	common["directory"] = "_directories"; -	common["path"] = "_directories"; -	common["url"] = "_urls"; -} - -inline void ZshCompletionOutput::version(CmdLineInterface& _cmd) -{ -	std::cout << _cmd.getVersion() << std::endl; -} - -inline void ZshCompletionOutput::usage(CmdLineInterface& _cmd ) -{ -	std::list<Arg*> argList = _cmd.getArgList(); -	std::string progName = _cmd.getProgramName(); -	std::string version = _cmd.getVersion(); -	theDelimiter = _cmd.getDelimiter(); -	basename(progName); - -	std::cout << "#compdef " << progName << std::endl << std::endl << -		"# " << progName << " version " << _cmd.getVersion() << std::endl << std::endl << -		"_arguments -s -S"; - -	for (ArgListIterator it = argList.begin(); it != argList.end(); it++) -	{ -		if ( (*it)->shortID().at(0) == '<' ) -			printArg((*it)); -		else if ( (*it)->getFlag() != "-" ) -			printOption((*it), getMutexList(_cmd, *it)); -	} - -	std::cout << std::endl; -} - -inline void ZshCompletionOutput::failure( CmdLineInterface& _cmd, -				                ArgException& e ) -{ -	static_cast<void>(_cmd); // unused -	std::cout << e.what() << std::endl; -} - -inline void ZshCompletionOutput::quoteSpecialChars( std::string& s ) -{ -	size_t idx = s.find_last_of(':'); -	while ( idx != std::string::npos ) -	{ -		s.insert(idx, 1, '\\'); -		idx = s.find_last_of(':', idx); -	} -	idx = s.find_last_of('\''); -	while ( idx != std::string::npos ) -	{ -		s.insert(idx, "'\\'"); -		if (idx == 0) -			idx = std::string::npos; -		else -			idx = s.find_last_of('\'', --idx); -	} -} - -inline void ZshCompletionOutput::basename( std::string& s ) -{ -	size_t p = s.find_last_of('/'); -	if ( p != std::string::npos ) -	{ -		s.erase(0, p + 1); -	} -} - -inline void ZshCompletionOutput::printArg(Arg* a) -{ -	static int count = 1; - -	std::cout << " \\" << std::endl << "  '"; -	if ( a->acceptsMultipleValues() ) -		std::cout << '*'; -	else -		std::cout << count++; -	std::cout << ':'; -	if ( !a->isRequired() ) -		std::cout << ':'; - -	std::cout << a->getName() << ':'; -	std::map<std::string, std::string>::iterator compArg = common.find(a->getName()); -	if ( compArg != common.end() ) -	{ -		std::cout << compArg->second; -	} -	else -	{ -		std::cout << "_guard \"^-*\" " << a->getName(); -	} -	std::cout << '\''; -} - -inline void ZshCompletionOutput::printOption(Arg* a, std::string mutex) -{ -	std::string flag = a->flagStartChar() + a->getFlag(); -	std::string name = a->nameStartString() + a->getName(); -	std::string desc = a->getDescription(); - -	// remove full stop and capitalisation from description as -	// this is the convention for zsh function -	if (!desc.compare(0, 12, "(required)  ")) -	{ -		desc.erase(0, 12); -	} -	if (!desc.compare(0, 15, "(OR required)  ")) -	{ -		desc.erase(0, 15); -	} -	size_t len = desc.length(); -	if (len && desc.at(--len) == '.') -	{ -		desc.erase(len); -	} -	if (len) -	{ -		desc.replace(0, 1, 1, tolower(desc.at(0))); -	} - -	std::cout << " \\" << std::endl << "  '" << mutex; - -	if ( a->getFlag().empty() ) -	{ -		std::cout << name; -	} -	else -	{ -		std::cout << "'{" << flag << ',' << name << "}'"; -	} -	if ( theDelimiter == '=' && a->isValueRequired() ) -		std::cout << "=-"; -	quoteSpecialChars(desc); -	std::cout << '[' << desc << ']'; - -	if ( a->isValueRequired() ) -	{ -		std::string arg = a->shortID(); -		arg.erase(0, arg.find_last_of(theDelimiter) + 1); -		if ( arg.at(arg.length()-1) == ']' ) -			arg.erase(arg.length()-1); -		if ( arg.at(arg.length()-1) == ']' ) -		{ -			arg.erase(arg.length()-1); -		} -		if ( arg.at(0) == '<' ) -		{ -			arg.erase(arg.length()-1); -			arg.erase(0, 1); -		} -		size_t p = arg.find('|'); -		if ( p != std::string::npos ) -		{ -			do -			{ -				arg.replace(p, 1, 1, ' '); -			} -			while ( (p = arg.find_first_of('|', p)) != std::string::npos ); -			quoteSpecialChars(arg); -			std::cout << ": :(" << arg << ')'; -		} -		else -		{ -			std::cout << ':' << arg; -			std::map<std::string, std::string>::iterator compArg = common.find(arg); -			if ( compArg != common.end() ) -			{ -				std::cout << ':' << compArg->second; -			} -		} -	} - -	std::cout << '\''; -} - -inline std::string ZshCompletionOutput::getMutexList( CmdLineInterface& _cmd, Arg* a) -{ -	XorHandler xorHandler = _cmd.getXorHandler(); -	std::vector< std::vector<Arg*> > xorList = xorHandler.getXorList(); -	 -	if (a->getName() == "help" || a->getName() == "version") -	{ -		return "(-)"; -	} - -	std::ostringstream list; -	if ( a->acceptsMultipleValues() ) -	{ -		list << '*'; -	} - -	for ( int i = 0; static_cast<unsigned int>(i) < xorList.size(); i++ ) -	{ -		for ( ArgVectorIterator it = xorList[i].begin(); -			it != xorList[i].end(); -			it++) -		if ( a == (*it) ) -		{ -			list << '('; -			for ( ArgVectorIterator iu = xorList[i].begin(); -				iu != xorList[i].end(); -				iu++ ) -			{ -				bool notCur = (*iu) != a; -				bool hasFlag = !(*iu)->getFlag().empty(); -				if ( iu != xorList[i].begin() && (notCur || hasFlag) ) -					list << ' '; -				if (hasFlag) -					list << (*iu)->flagStartChar() << (*iu)->getFlag() << ' '; -				if ( notCur || hasFlag ) -					list << (*iu)->nameStartString() << (*iu)->getName(); -			} -			list << ')'; -			return list.str(); -		} -	} -	 -	// wasn't found in xor list -	if (!a->getFlag().empty()) { -		list << "(" << a->flagStartChar() << a->getFlag() << ' ' << -			a->nameStartString() << a->getName() << ')'; -	} -	 -	return list.str(); -} - -} //namespace TCLAP -#endif  | 
