Cpp-Argument-Parser/test.cpp

49 lines
1.6 KiB
C++
Raw Normal View History

2022-07-26 02:57:57 +00:00
#include <iostream>
#include "argparser.h"
using namespace Cam;
int main(int argc, char **argv) {
Arguments::Parser parser = Arguments::Parser("test");
parser.set_description("A test of argument parsing :)");
Arguments::Option first("first", 'f', "First arg", Arguments::STRING);
Arguments::Option second("second", 's', "Second arg", Arguments::INT);
Arguments::Option third("third", 't', "Third arg", Arguments::FLAG);
2022-07-26 02:57:57 +00:00
Arguments::PositionalArgument name("name", false, Arguments::STRING);
2022-07-26 02:57:57 +00:00
Arguments::PositionalArgument age("age", false, Arguments::INT);
parser.add_option(&first);
parser.add_option(&second);
parser.add_option(&third);
parser.add_positional_argument(&name);
parser.add_positional_argument(&age);
if (parser.parse(argc, argv) != 0) {
return -1;
}
std::cout << "Found:" << std::endl;
std::cout << "\tFirst: " << first.found() << std::endl;
std::cout << "\tSecond: " << second.found() << std::endl;
std::cout << "\tThird: " << third.found() << std::endl;
std::cout << "\tName: " << name.found() << std::endl;
std::cout << "\tAge: " << age.found() << std::endl;
if (first.found() || second.found() || name.found() || age.found())
std::cout << std::endl << "Values:" << std::endl;
if (first.found())
std::cout << "\tFirst: " << (char*) first.data << std::endl;
if (second.found())
std::cout << "\tSecond: " << *((int*) second.data) << std::endl;
if (name.found())
std::cout << "\tName: " << (char*) name.data << std::endl;
if (age.found())
std::cout << "\tAge: " << *((int*) age.data) << std::endl;
return 0;
}