Cleaned up some parts of the code.
This commit is contained in:
parent
f80b9b9b0e
commit
be4186a0c7
4 changed files with 2620 additions and 8 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -2,3 +2,4 @@ build/*
|
|||
argParseCpp
|
||||
argParseTest.exe
|
||||
*.bat
|
||||
html/*
|
||||
|
|
|
|||
|
|
@ -58,8 +58,8 @@ class ParserParam
|
|||
/// Parses the argument(s) given, according to the parameter type. Returns true if the parsing was successful.
|
||||
bool Parse(const std::string & arg, std::string argval = "");
|
||||
|
||||
/// Returns true if the provided name corresponds to either the short name or the long name, even if the parameter is of type "equal"
|
||||
bool IsThisParamNamed(const std::string & name) const;
|
||||
/// Returns true if the provided name corresponds to either the short name or the long name, even if the parameter is of type "equal". If "permissive" is set to true, even the parameter name without preceding "-" will match the parameter.
|
||||
bool IsThisParamNamed(const std::string & name, bool permissive = false) const;
|
||||
|
||||
/// Returns whether the parameter's value is valid or not
|
||||
bool IsValid() const;
|
||||
|
|
|
|||
|
|
@ -143,9 +143,9 @@ bool ParserParam::Parse(const std::string & arg, std::string argval)
|
|||
return true;
|
||||
}
|
||||
|
||||
bool ParserParam::IsThisParamNamed(const std::string & name) const
|
||||
bool ParserParam::IsThisParamNamed(const std::string & name, bool permissive) const
|
||||
{
|
||||
return name == shortName || name == longName || StringStartsWith(name, shortName) || StringStartsWith(name, longName);
|
||||
return name == shortName || name == longName || StringStartsWith(name, shortName) || StringStartsWith(name, longName) || (permissive && name == SimpleName());
|
||||
}
|
||||
|
||||
bool ParserParam::IsValid() const { return validity; }
|
||||
|
|
@ -206,6 +206,9 @@ bool Parser::Parse(std::vector<std::string> args)
|
|||
if(argumentParsed)
|
||||
break;
|
||||
}
|
||||
|
||||
if(!argumentParsed && iArg != 0)
|
||||
std::cerr << "Warning : argument #" << iArg+1 << " \"" << arg << "\" invalid.\n";
|
||||
}
|
||||
}
|
||||
return true;
|
||||
|
|
@ -214,7 +217,7 @@ bool Parser::Parse(std::vector<std::string> args)
|
|||
bool Parser::GetArgumentValueBool(const std::string & argName)
|
||||
{
|
||||
for(ParserParam const& param : parserParams)
|
||||
if(param.IsThisParamNamed(argName) || argName == param.SimpleName())
|
||||
if(param.IsThisParamNamed(argName, true))
|
||||
{
|
||||
ASSERT_MSG(param.valueType == ArgParseCpp::Bool, "Error : parameter \"" << param.SimpleName() << "\" is not of type bool.");
|
||||
return param.boolVal;
|
||||
|
|
@ -226,7 +229,7 @@ bool Parser::GetArgumentValueBool(const std::string & argName)
|
|||
int Parser::GetArgumentValueInt(const std::string & argName)
|
||||
{
|
||||
for(ParserParam const& param : parserParams)
|
||||
if(param.IsThisParamNamed(argName) || argName == param.SimpleName())
|
||||
if(param.IsThisParamNamed(argName, true))
|
||||
{
|
||||
ASSERT_MSG(param.valueType == ArgParseCpp::Int, "Error : parameter \"" << param.SimpleName() << "\" is not of type int.");
|
||||
return param.intVal;
|
||||
|
|
@ -238,7 +241,7 @@ int Parser::GetArgumentValueInt(const std::string & argName)
|
|||
double Parser::GetArgumentValueDouble(const std::string & argName)
|
||||
{
|
||||
for(ParserParam const& param : parserParams)
|
||||
if(param.IsThisParamNamed(argName) || argName == param.SimpleName())
|
||||
if(param.IsThisParamNamed(argName, true))
|
||||
{
|
||||
ASSERT_MSG(param.valueType == ArgParseCpp::Double, "Error : parameter \"" << param.SimpleName() << "\" is not of type double.");
|
||||
return param.doubleVal;
|
||||
|
|
@ -250,7 +253,7 @@ double Parser::GetArgumentValueDouble(const std::string & argName)
|
|||
std::string const& Parser::GetArgumentValueString(const std::string & argName)
|
||||
{
|
||||
for(ParserParam const& param : parserParams)
|
||||
if(param.IsThisParamNamed(argName) || argName == param.SimpleName())
|
||||
if(param.IsThisParamNamed(argName, true))
|
||||
{
|
||||
ASSERT_MSG(param.valueType == ArgParseCpp::String, "Error : parameter \"" << param.SimpleName() << "\" is not of type string.");
|
||||
return param.stringVal;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue