7void Orchestrator::help_command(){
8 cout <<
"Sorry I am tired I will do this latter" <<
'\n';
11void Orchestrator::check_update_similarity(vector<string> parameters,
Similarity_Table *similarity_table){
12 int number_parameters = parameters.size();
13 for(
int i = 0; i < number_parameters-1; i++){
14 string param = parameters[i];
15 string next_param = parameters[i+1];
22bool Orchestrator::check_force_preprocess(vector<string> parameters){
23 int number_parameters = parameters.size();
24 for(
int i = 0; i < number_parameters; i++){
25 if(parameters[i] ==
"-pre"){
32void Orchestrator::call_preprocess(vector<string> parameters){
33 bool should_force = check_force_preprocess(parameters);
37void Orchestrator::exploration_command(vector<string> parameters,
Similarity_Table *similarity_table){
38 int number_parameters = parameters.size();
42 bool both_need_to_match =
false;
43 bool sorted_by_number_of_duplicated_code =
false;
44 for(
int i = 0; i < number_parameters-1; i++){
45 string param = parameters[i];
46 string next_param = parameters[i+1];
48 limiter = stoi(next_param);
54 both_need_to_match = (next_param ==
"T");
57 sorted_by_number_of_duplicated_code = (next_param ==
"T");
65 sorted_by_number_of_duplicated_code);
68void Orchestrator::random_command(vector<string> parameters,
Similarity_Table *similarity_table){
69 int number_parameters = parameters.size();
70 if(number_parameters <= 2){
71 cout <<
"ERROR: Random expect three parameters, but less was given" << endl;
74 int minimum_similarity = stod(parameters[0]);
75 int maximum_similarity = stod(parameters[1]);
76 int maximum_quantity = stod(parameters[2]);
77 Random_Selector random(similarity_table,minimum_similarity,maximum_similarity,maximum_quantity);
80void Orchestrator::duplication_command(vector<string> parameters,
Similarity_Table *similarity_table){
84void Orchestrator::big_clone_formater_command(vector<string> parameters,
Similarity_Table *similarity_table){
88void Orchestrator::big_clone_tailor_evaluator_command(vector<string> parameters,
Similarity_Table *similarity_table){
92void Orchestrator::similar_function_finder_command(vector<string> parameters,
Similarity_Table *similarity_table){
93 int number_parameters = parameters.size();
94 if(number_parameters == 0){
95 cout <<
"ERROR: Similar Function Finder Command expect one parameter, but none was given" << endl;
103 call_preprocess(parameters);
105 check_update_similarity(parameters,&similarity_table);
108 duplication_command(parameters,&similarity_table);
109 }
else if(command ==
"ex"){
110 exploration_command(parameters,&similarity_table);
111 }
else if(command ==
"fu"){
112 similar_function_finder_command(parameters,&similarity_table);
113 }
else if(command ==
"bi"){
114 big_clone_formater_command(parameters,&similarity_table);
115 }
else if(command ==
"ev"){
116 big_clone_tailor_evaluator_command(parameters,&similarity_table);
117 }
else if(command ==
"ra"){
118 random_command(parameters,&similarity_table);
124int main(
int argc,
char *argv[]){
126 vector<string> parameters;
128 command = string(argv[1]);
130 for(
int i = 2; i < argc; i++){
131 string param(argv[i]);
132 parameters.push_back(param);
Evaluates clone detection using BigCloneBench methodology.
Code duplication analyzer and reporter.
Main command orchestrator.
Orchestrator(string command, vector< string > parameters)
Constructs orchestrator and executes requested command.
Codebase preprocessing orchestrator.
Random pair selector for similar code segments.
Similar function locator and reporter.
Duplicate function explorer and analyzer.
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.