ArgParseCpp/src/test_ArgParseCpp.cpp

72 lines
3.3 KiB
C++
Raw Normal View History

#include <iostream>
#include <ArgParseCpp.hpp>
#include <utils.hpp>
using ArgListT = std::vector<std::string>;
using ArgParseCpp::Parser;
template<typename T> std::vector<T> & operator<<(std::vector<T> &vec, const T & val)
{
vec.push_back(val);
return vec;
}
int main(int argc, char *argv[])
{
// Test the parser on the arguments provided in main()
if(argc > 1)
{
Parser parser;
parser.Parse(argc, argv);
}
// Test the parser in various predefined scenarios
else
{
if(0)
{// automatic help message
Parser parser;
parser.AddParameter(ArgParseCpp::ParserParam("-v", "--verbose", ArgParseCpp::StandaloneParam, ArgParseCpp::Bool, "Makes the program more verbose."));
parser.AddParameter(ArgParseCpp::ParserParam("-a", "--all", ArgParseCpp::StandaloneParam, ArgParseCpp::Bool, "Does all the things."));
parser.AddParameter(ArgParseCpp::ParserParam("-n", "--nope", ArgParseCpp::StandaloneParam));
parser.AddParameter(ArgParseCpp::ParserParam("-d", "--decimate", ArgParseCpp::SingleValueParam, ArgParseCpp::Int, "Decimates the signal by a factor d."));
parser.AddParameter(ArgParseCpp::ParserParam("-b", "--babar", ArgParseCpp::SingleValueParam, ArgParseCpp::Int));
parser.AddParameter(ArgParseCpp::ParserParam("-c", "", ArgParseCpp::SingleValueParam, ArgParseCpp::Double));
parser.AddParameter(ArgParseCpp::ParserParam("-o", "", ArgParseCpp::SingleValueParam, ArgParseCpp::String));
parser.AddParameter(ArgParseCpp::ParserParam("-e", "", ArgParseCpp::EqualParam, ArgParseCpp::Int));
parser.PrintHelp();
}
if(0)
{// sanitize the input arguments and display help whenever -h or --help is seen
std::string argString = "programName -h blabla hehe hoho lalaland";
Parser parser;
parser.Parse(argString);
}
if(0)
{// parse some boolean arguments
std::string argString = "programName -v --all";
Parser parser;
parser.AddParameter(ArgParseCpp::ParserParam("-v", "--verbose", ArgParseCpp::StandaloneParam, ArgParseCpp::Bool, "Makes the program more verbose."));
parser.AddParameter(ArgParseCpp::ParserParam("-a", "--all", ArgParseCpp::StandaloneParam));
parser.AddParameter(ArgParseCpp::ParserParam("-b", "--brief", ArgParseCpp::StandaloneParam));
parser.AddParameter(ArgParseCpp::ParserParam("-z", "", ArgParseCpp::StandaloneParam));
parser.PrintHelp();
parser.Parse(argString);
parser.PrintParsedArguments();
}
// if(0)
{// parse single value arguments
std::string argString = "programName -a 5 -b 12.654 -s blabla_mon_negro hehe";
Parser parser;
parser.AddParameter(ArgParseCpp::ParserParam("-a", "--all", ArgParseCpp::SingleValueParam, ArgParseCpp::Int));
parser.AddParameter(ArgParseCpp::ParserParam("-b", "--brief", ArgParseCpp::SingleValueParam, ArgParseCpp::Double));
parser.AddParameter(ArgParseCpp::ParserParam("-s", "", ArgParseCpp::SingleValueParam, ArgParseCpp::String));
parser.PrintHelp();
parser.Parse(argString);
parser.PrintParsedArguments();
}
}
return 0;
}