forked from Ak0s/zerda-exam-cpp-orientation
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathArgument.cpp
More file actions
44 lines (37 loc) · 815 Bytes
/
Argument.cpp
File metadata and controls
44 lines (37 loc) · 815 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include "Argument.hpp"
Argument::Argument(int argc, char** argv) {
this->argc = argc;
this->argv = argv;
parse_flag_from_args();
parse_type_from_args();
}
void Argument::parse_type_from_args() {
if (argc == 1) {
type = NONE;
} else if (argc == 2) {
type = INPUT_FILE;
} else if (argc == 3) {
type = WITH_FLAG_S;
} else if (argc == 4) {
type = WITH_SHIFT;
} else if (argc == 5) {
type = WITH_FLAG_O;
} else if (argc == 6) {
type = OUTPUT_FILE;
}
}
void Argument::parse_flag_from_args() {
if (argc > 1) {
flag1 = argv[FLAG1_ARG_INDEX][CHAR_INDEX];
flag2 = argv[FLAG2_ARG_INDEX][CHAR_INDEX];
}
}
ArgType Argument::get_type() {
return type;
}
std::string Argument::get_flag1() {
return flag1;
}
std::string Argument::get_flag2() {
return flag2;
}