Arkanjo 0.1
A tool for find code duplicated functions in codebases
Loading...
Searching...
No Matches
function_breaker_java.hpp
Go to the documentation of this file.
1
11#ifndef FUNCTION_BREAKER_JAVA_HPP
12#define FUNCTION_BREAKER_JAVA_HPP
13
14#include <string>
15#include <vector>
16#include <set>
17#include <array>
18#include <utility>
19#include "../base/utils.hpp"
21
30 const int NUMBER_OF_LINES_BEFORE_FOR_FUNCTION_NAME = 7;
31 const int C_RELEVANT_DEPTH = 0;
32 const int JAVA_RELEVANT_DEPTH = 1;
33 const bool IGNORE_EMPTY_FUNCTIONS = true;
34 const bool ALLOW_STRUCTS = false;
35
41 set<array<int,3>> find_start_end_and_depth_of_brackets(vector<string> brackets_content);
42
49 set<pair<int,int>> find_start_end_of_brackets_of_given_depth(vector<string> brackets_content, int depth);
50
56 int find_position_first_open_bracket(string s);
57
63 string extract_last_token_of_string(string s);
64
71 Line_content build_line_code(int line_number, string content);
72
80 vector<Line_content> get_lines_before_body_function(const vector<string> &file_content, int line_start_body_function, int pos_bracket);
81
87 vector<Line_content> remove_parenteses_at_the_end_of_the_scope(vector<Line_content> code);
88
94 vector<Line_content> remove_content_until_find_parenteses_at_the_end(vector<Line_content> code);
95
101 vector<Line_content> remove_parameters_of_declaration_c(vector<Line_content> code);
102
108 vector<Line_content> remove_parameters_of_declaration_java(vector<Line_content> code);
109
116 vector<Line_content> remove_parameters_of_declaration(vector<Line_content> code, PROGRAMMING_LANGUAGE programming_language);
117
125 pair<string,int> extract_function_name_and_line_from_declaration(const vector<string> &file_content, int line_start_body_function, PROGRAMMING_LANGUAGE programming_language);
126
134 vector<string> build_function_content(int start_number_line, int end_number_line, const vector<string> &file_content);
135
145 vector<string> build_header_content(int start_number_line, int line_declaration, string relative_path, string function_name, const vector<string> &file_content);
146
154 bool is_body_function_empty(int start_number_line, int end_number_line, const vector<string> &file_content);
155
164 void process_function(int start_number_line, int end_number_line, string relative_path, const vector<string> &file_content, PROGRAMMING_LANGUAGE programming_language);
165
172 string file_path_from_folder_path(string file_path, string folder_path);
173
179 void file_breaker_java(string file_path, string folder_path);
180
181 public:
187 FunctionBreakerJava(string file_path, string folder_path);
188};
189
190#endif
Java function parser and extractor.
FunctionBreakerJava(string file_path, string folder_path)
Constructs Java function breaker and processes file.
Function breaker utilities and constants.
PROGRAMMING_LANGUAGE
Enumeration of supported programming languages.
Structure representing a line of source code.
Defines utility functions used across all files.