Arkanjo 0.1
A tool for find code duplicated functions in codebases
Loading...
Searching...
No Matches
counter_duplication_code_trie.hpp
Go to the documentation of this file.
1
13#ifndef COUNTER_DUPLICATION_CODE_TRIE_HPP
14#define COUNTER_DUPLICATION_CODE_TRIE_HPP
15
16#include <string>
17#include <vector>
18#include <map>
19
20#include "../base/utils.hpp"
21using namespace std;
22
34 private:
35 int ZERO_INITIAL_COUNTER = 0;
36 int ROOT_NODE = 0;
37 int BASE_DEPTH = 0;
38 string EMPTY_FOLDER = "";
39 string BASIC_SHIFT_PER_DEPTH = "----";
40 string END_ARROW = "--> ";
41 string TWO_POINTER_AFTER_FOLDER = "/: ";
42 string LINE_TEXT = " duplicated lines detected.";
43
44 vector<map<string,int>> trie;
45 vector<int> counter_duplication_lines;
46 int number_printed_lines = 0;
47
52 Utils::COLOR choose_text_color();
53
58 int create_node_at_the_end();
59
65 void create_edge_if_not_exist(int node, string folder);
66
72 string create_context_string_on_depth(int depth);
73
80 void print_node_information(int node, int depth, string folder);
81
88 void dfs_print_duplication_code_trie(int current_node, int depth, string folder);
89
90 public:
96 void add_folder_duplication_code(vector<string> folder_path, int number_of_duplication_lines);
97
102
107};
108
109#endif
Trie structure for hierarchical duplication counting.
Counter_Duplication_Code_Trie()
Constructs a new trie with root node.
void print_duplication_code_trie()
Prints the trie structure with duplication counts.
void add_folder_duplication_code(vector< string > folder_path, int number_of_duplication_lines)
Adds duplication count for a folder path.
COLOR
Enumeration of available colors for formatted messages.
Definition utils.hpp:103
Definition json.hpp:5678
Defines utility functions used across all files.