3void Orchestrator::help_command(){
4 cout <<
"Sorry I am tired I will do this latter" <<
'\n';
7void Orchestrator::check_update_similarity(vector<string> parameters,
Similarity_Table *similarity_table){
8 int number_parameters = parameters.size();
9 for(
int i = 0; i < number_parameters-1; i++){
10 string param = parameters[i];
11 string next_param = parameters[i+1];
18bool Orchestrator::check_force_preprocess(vector<string> parameters){
19 int number_parameters = parameters.size();
20 for(
int i = 0; i < number_parameters; i++){
21 if(parameters[i] ==
"-pre"){
28void Orchestrator::call_preprocess(vector<string> parameters){
29 bool should_force = check_force_preprocess(parameters);
30 Preprocessor preprocessor(should_force);
33void Orchestrator::exploration_command(vector<string> parameters,
Similarity_Table *similarity_table){
34 int number_parameters = parameters.size();
38 bool both_need_to_match =
false;
39 bool sorted_by_number_of_duplicated_code =
false;
40 for(
int i = 0; i < number_parameters-1; i++){
41 string param = parameters[i];
42 string next_param = parameters[i+1];
44 limiter = stoi(next_param);
50 both_need_to_match = (next_param ==
"T");
53 sorted_by_number_of_duplicated_code = (next_param ==
"T");
56 Similarity_Explorer similarity_explorer(
61 sorted_by_number_of_duplicated_code);
64void Orchestrator::random_command(vector<string> parameters,
Similarity_Table *similarity_table){
65 int number_parameters = parameters.size();
66 if(number_parameters <= 2){
67 cout <<
"ERROR: Random expect three parameters, but less was given" << endl;
70 int minimum_similarity = stod(parameters[0]);
71 int maximum_similarity = stod(parameters[1]);
72 int maximum_quantity = stod(parameters[2]);
73 Random_Selector random(similarity_table,minimum_similarity,maximum_similarity,maximum_quantity);
76void Orchestrator::duplication_command(vector<string> parameters,
Similarity_Table *similarity_table){
77 Counter_Duplication_Code counter_duplication_code(similarity_table);
80void Orchestrator::big_clone_formater_command(vector<string> parameters,
Similarity_Table *similarity_table){
81 Big_Clone_Formater big_clone_formater(similarity_table);
84void Orchestrator::big_clone_tailor_evaluator_command(vector<string> parameters,
Similarity_Table *similarity_table){
85 Big_Clone_Tailor_Evaluator big_clone_tailor_evaluator(similarity_table);
88void Orchestrator::similar_function_finder_command(vector<string> parameters,
Similarity_Table *similarity_table){
89 int number_parameters = parameters.size();
90 if(number_parameters == 0){
91 cout <<
"ERROR: Similar Function Finder Command expect one parameter, but none was given" << endl;
94 Similar_Function_Finder similar_function_finder(parameters[0],similarity_table);
99 call_preprocess(parameters);
101 check_update_similarity(parameters,&similarity_table);
104 duplication_command(parameters,&similarity_table);
105 }
else if(command ==
"ex"){
106 exploration_command(parameters,&similarity_table);
107 }
else if(command ==
"fu"){
108 similar_function_finder_command(parameters,&similarity_table);
109 }
else if(command ==
"bi"){
110 big_clone_formater_command(parameters,&similarity_table);
111 }
else if(command ==
"ev"){
112 big_clone_tailor_evaluator_command(parameters,&similarity_table);
113 }
else if(command ==
"ra"){
114 random_command(parameters,&similarity_table);
120int main(
int argc,
char *argv[]){
122 vector<string> parameters;
124 command = string(argv[1]);
126 for(
int i = 2; i < argc; i++){
127 string param(argv[i]);
128 parameters.push_back(param);
Main command orchestrator.
Orchestrator(string command, vector< string > parameters)
Constructs orchestrator and executes requested command.
Manages and analyzes function similarity relationships.
void update_similarity(double new_similarity_threshold)
Updates similarity threshold.
int main(int argc, char *argv[])
Main command orchestration interface.