Arkanjo
0.2
A tool for find code duplicated functions in codebases
Loading...
Searching...
No Matches
parser_options.hpp
Go to the documentation of this file.
1
#pragma once
2
#include <string>
3
#include <map>
4
#include <vector>
5
#include <getopt.h>
6
7
#include <
arkanjo/cli/cli_error.hpp
>
8
9
enum
ArgumentsType
{
10
NoArgument
,
11
RequiredArgument
,
12
OptionalArgument
,
13
PositionalArgument
,
14
};
15
16
struct
CliOption
{
17
const
char
*
long_name
;
18
char
short_name
;
19
ArgumentsType
has_arg
;
20
const
char
*
description
{
""
};
21
};
22
26
#define OPTION_END {nullptr, 0, NoArgument, nullptr}
27
28
struct
ParsedOptions
{
36
std::map<std::string, std::string>
args
;
37
41
std::vector<std::string>
extra_args
;
42
};
43
56
bool
parse_options
(
int
argc,
char
* argv[],
const
std::vector<CliOption>& options,
ParsedOptions
& ctx_options);
cli_error.hpp
parse_options
bool parse_options(int argc, char *argv[], const std::vector< CliOption > &options, ParsedOptions &ctx_options)
Analyzes command-line arguments and populates ParsedOptions.
Definition
parser_options.cpp:45
ArgumentsType
ArgumentsType
Definition
parser_options.hpp:9
RequiredArgument
@ RequiredArgument
Definition
parser_options.hpp:11
OptionalArgument
@ OptionalArgument
Definition
parser_options.hpp:12
NoArgument
@ NoArgument
Definition
parser_options.hpp:10
PositionalArgument
@ PositionalArgument
Definition
parser_options.hpp:13
CliOption
Definition
parser_options.hpp:16
CliOption::has_arg
ArgumentsType has_arg
Definition
parser_options.hpp:19
CliOption::long_name
const char * long_name
Definition
parser_options.hpp:17
CliOption::description
const char * description
Definition
parser_options.hpp:20
CliOption::short_name
char short_name
Definition
parser_options.hpp:18
ParsedOptions
Definition
parser_options.hpp:28
ParsedOptions::extra_args
std::vector< std::string > extra_args
List of extra arguments that are not options.
Definition
parser_options.hpp:41
ParsedOptions::args
std::map< std::string, std::string > args
Map from option name to value.
Definition
parser_options.hpp:36
include
arkanjo
cli
parser_options.hpp
Generated by
1.12.0