Считываемый предполагаемый номер мат. функции
Номер предполагаемой мат. функции в общем векторе
Индекс предполагаемой мат. функции в общем векторе
25 {
27
28
29 vector<size_t> unexposed_dependencies;
30
31
33
34
35 if (
func_str.find(
"y_") == string::npos)
36 throw invalid_argument("invalid usage 'y'");
37
38
40 throw invalid_argument("invalid usage 'y'");
41
42
43
44 for (
size_t i = 0; i <
func_str.size(); i++) {
45
47
48 if (ch == 'y') {
49
50
51 string read_est_number = "";
52
53
54 for (
size_t j = i + 2; j <
func_str.size(); j++)
57 else
58 break;
59
60
61 if (read_est_number.empty())
62 throw invalid_argument("invalid function number");
63
64
65 size_t est_number = stoull(read_est_number);
66
67
68 size_t est_index = est_number - 1;
69
70
72 throw invalid_argument("invalid function number: " + read_est_number);
73
74
75 if (
elem_in_vec(est_number, unexposed_dependencies))
76 throw invalid_argument("self-usage or loop");
77
78
80 unexposed_dependencies.push_back(est_number);
81
82 else
83 unexposed_dependencies.clear();
84
85
86
87
90
91
92
93
94
95
96
97
101 else
103 }
104 }
105}
std::vector< size_t > dependencies
Общий вектор всех номеров мат. функций, которые зависят от текущей
Definition expose_func_str.h:49
bool elem_in_vec(T elem, const std::vector< T > &vec)
Definition utilities.h:24
void replace(string &str, const string &from, const string &to)
Заменяет кусочек строки другим, модифицируя саму строку
Definition utilities.cpp:36
bool c_in_s(char c, const string &s)
Definition utilities.cpp:9
string spaces_deleted(const string &s)
Definition utilities.cpp:27