Arkanjo 0.2
A tool for find code duplicated functions in codebases
Loading...
Searching...
No Matches
function_breaker_util.hpp File Reference

Function breaker utilities and constants. More...

#include <string>
#include <vector>
#include <filesystem>
#include <arkanjo/base/config.hpp>
#include <arkanjo/utils/utils.hpp>
+ Include dependency graph for function_breaker_util.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  Line_content
 Structure representing a line of source code. More...
 

Enumerations

enum  PROGRAMMING_LANGUAGE { C , JAVA }
 Enumeration of supported programming languages. More...
 

Functions

string extract_extension (const fs::path &file_path)
 Extracts file extension from path.
 
fs::path build_source_path (const fs::path &relative_path, const string &function_name)
 Builds source file path for a function.
 
fs::path build_header_path (const fs::path &relative_path, const string &function_name)
 Builds header file path for a function.
 
fs::path build_info_path (const fs::path &relative_path, const string &function_name)
 Builds info file path for a function.
 
void create_source_file (int start_number_line, int end_number_line, const fs::path &relative_path, const string &function_name, const vector< string > &function_content)
 Creates source file for a function.
 
void create_header_file (const fs::path &relative_path, const string &function_name, const vector< string > &header_content)
 Creates header file for a function.
 
void create_info_file (int line_declaration, int start_number_line, int end_number_line, const fs::path &relative_path, const string &function_name)
 Creates JSON metadata file for a function.
 

Variables

const string SOURCE_PATH = "source"
 Directory name for source files.
 
const string HEADER_PATH = "header"
 Directory name for header files.
 
const string INFO_PATH = "info"
 Directory name for metadata files.
 

Detailed Description

Function breaker utilities and constants.

Defines common utilities, structures, and constants used across the function breaking process for supported programming languages.

Defines util functions, struct and constants used across the function breaker process for the suported languages

Definition in file function_breaker_util.hpp.

Enumeration Type Documentation

◆ PROGRAMMING_LANGUAGE

Enumeration of supported programming languages.

Enumerator

C programming language.

JAVA 

Java programming language.

Definition at line 35 of file function_breaker_util.hpp.

Function Documentation

◆ build_header_path()

fs::path build_header_path ( const fs::path & relative_path,
const string & function_name )

Builds header file path for a function.

Parameters
relative_pathRelative path of the original file
function_nameName of the function
Returns
string Full path for the header file

Definition at line 18 of file function_breaker_util.cpp.

◆ build_info_path()

fs::path build_info_path ( const fs::path & relative_path,
const string & function_name )

Builds info file path for a function.

Parameters
relative_pathRelative path of the original file
function_nameName of the function
Returns
string Full path for the info file

Definition at line 27 of file function_breaker_util.cpp.

◆ build_source_path()

fs::path build_source_path ( const fs::path & relative_path,
const string & function_name )

Builds source file path for a function.

Parameters
relative_pathRelative path of the original file
function_nameName of the function
Returns
string Full path for the source file

Definition at line 9 of file function_breaker_util.cpp.

◆ create_header_file()

void create_header_file ( const fs::path & relative_path,
const string & function_name,
const vector< string > & header_content )

Creates header file for a function.

Parameters
relative_pathRelative path of the original file
function_nameName of the function
header_contentVector of strings containing the header content

Definition at line 41 of file function_breaker_util.cpp.

◆ create_info_file()

void create_info_file ( int line_declaration,
int start_number_line,
int end_number_line,
const fs::path & relative_path,
const string & function_name )

Creates JSON metadata file for a function.

Parameters
line_declarationLine number where function is declared
start_number_lineStarting line number of function body
end_number_lineEnding line number of function body
relative_pathRelative path of the original file
function_nameName of the function

Definition at line 47 of file function_breaker_util.cpp.

◆ create_source_file()

void create_source_file ( int start_number_line,
int end_number_line,
const fs::path & relative_path,
const string & function_name,
const vector< string > & function_content )

Creates source file for a function.

Parameters
start_number_lineStarting line number in original file
end_number_lineEnding line number in original file
relative_pathRelative path of the original file
function_nameName of the function
function_contentVector of strings containing the function body

Definition at line 36 of file function_breaker_util.cpp.

◆ extract_extension()

string extract_extension ( const fs::path & file_path)

Extracts file extension from path.

Parameters
file_pathPath to the file
Returns
string File extension

Definition at line 3 of file function_breaker_util.cpp.

Variable Documentation

◆ HEADER_PATH

const string HEADER_PATH = "header"

Directory name for header files.

Definition at line 41 of file function_breaker_util.hpp.

◆ INFO_PATH

const string INFO_PATH = "info"

Directory name for metadata files.

Definition at line 42 of file function_breaker_util.hpp.

◆ SOURCE_PATH

const string SOURCE_PATH = "source"

Directory name for source files.

Definition at line 40 of file function_breaker_util.hpp.