Skip to content

Commit 0d012c9

Browse files
Merge branch 'master' into redesign-1.0
2 parents de3daf9 + 5a0f74a commit 0d012c9

File tree

3 files changed

+19
-2
lines changed

3 files changed

+19
-2
lines changed

parser-tests/parser-tests.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,6 @@ namespace parsertests
109109
int argc = 5;
110110
mock_arg_parser parser;
111111
parser.parse(argc, argv);
112-
113112
Assert::IsTrue(parser.do_record.is_set());
114113
Assert::IsTrue(check_value_in_vector(parser.double_dash.get_values(), L"notepad.exe"));
115114
Assert::IsTrue(COMMAND_CLASS::RECORD == parser.m_command);

parser/arg-parser.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,14 @@ void arg_parser::parse(
4949
raw_args.push_back(argv[i]);
5050
m_arg_array.push_back(argv[i]);
5151
}
52+
try_match_and_set_arg(raw_args, do_list);
53+
try_match_and_set_arg(raw_args, do_help);
54+
try_match_and_set_arg(raw_args, do_version);
55+
try_match_and_set_arg(raw_args, do_test);
56+
try_match_and_set_arg(raw_args, do_detect);
57+
try_match_and_set_arg(raw_args, do_sample);
58+
try_match_and_set_arg(raw_args, do_record);
59+
try_match_and_set_arg(raw_args, do_count);
5260

5361
if (raw_args.size() == 0)
5462
throw_invalid_arg(L"", L"warning: No arguments were found!");
@@ -59,6 +67,7 @@ void arg_parser::parse(
5967
if (command->parse(raw_args)) {
6068
m_command = command->m_command;
6169
raw_args.erase(raw_args.begin());
70+
6271
break;
6372
}
6473
}
@@ -90,6 +99,7 @@ void arg_parser::parse(
9099
{
91100
throw_invalid_arg(raw_args.front(), L"Error: Unrecognized command");
92101
}
102+
93103
}
94104
}
95105

parser/arg-parser.h

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ using namespace std;
4343

4444

4545
typedef std::vector<std::wstring> wstr_vec;
46+
4647
enum COMMAND_CLASS {
4748
STAT,
4849
SAMPLE,
@@ -55,6 +56,13 @@ enum COMMAND_CLASS {
5556
MAN,
5657
NO_COMMAND
5758
};
59+
static const std::set<COMMAND_CLASS> commands_with_events_and_metrics = {
60+
COMMAND_CLASS::STAT,
61+
COMMAND_CLASS::SAMPLE,
62+
COMMAND_CLASS::RECORD,
63+
COMMAND_CLASS::TIMELINE,
64+
COMMAND_CLASS::SPE
65+
};
5866

5967
class arg_parser_arg_command : public arg_parser_arg_opt {
6068
public:
@@ -210,6 +218,7 @@ class arg_parser
210218
{}
211219
);
212220

221+
213222
#pragma endregion
214223

215224
#pragma region Flags with arguments
@@ -393,5 +402,4 @@ class arg_parser
393402
protected:
394403
void throw_invalid_arg(const std::wstring& arg, const std::wstring& additional_message = L"") const;
395404
#pragma endregion
396-
397405
};

0 commit comments

Comments
 (0)