Arkanjo 0.2
A tool for find code duplicated functions in codebases
Loading...
Searching...
No Matches
parser.hpp
Go to the documentation of this file.
1
13#pragma once
14
15#include <algorithm>
16#include <fstream>
17#include <iomanip>
18#include <set>
19#include <string>
20#include <vector>
21#include <filesystem>
22namespace fs = std::filesystem;
23using namespace std;
24
32 string path1;
33 string path2;
34 double similarity;
35
40
47 Comparation(string _path1, string _path2, double _sim);
48
54 bool operator<(const Comparation& com) const;
55
61 bool operator==(const Comparation& com) const;
62};
63
70class Parser {
71 private:
72 string PROJECT_PATH_MESSAGE = "Enter your project path:";
73 string MINIMUM_SIMILARITY_MESSAGE = "Enter minimum similarity desired on using the tool:";
74
75 ofstream fout;
76 double similarity_cap;
77 std::set<Comparation> comparations;
78
84 vector<string> parser_line(const string& line);
85
91 bool is_an_file(const std::string& s);
92
98 double retrive_similarity(const std::string& s);
99
105 void parser_block_stream(const std::string& path, const std::vector<std::string>& tokens, set<Comparation>& comparations);
106
107 public:
113 explicit Parser(const fs::path& output_file, double similarity_cap);
114
118 void exec_from_stream(FILE* pipe);
119
120 ~Parser();
121};
Parses and transforms duplication detection tool output.
Definition parser.hpp:70
void exec_from_stream(FILE *pipe)
Main parsing execution method using stream.
Definition parser.cpp:90
~Parser()
Definition parser.cpp:134
Parser(const fs::path &output_file, double similarity_cap)
Constructs parser with configuration.
Definition parser.cpp:126
Structure representing a code comparison result.
Definition parser.hpp:31
bool operator<(const Comparation &com) const
Comparison operator for sorting.
Definition parser.cpp:11
double similarity
Similarity score between the files (0-100)
Definition parser.hpp:34
Comparation()
Default constructor.
Definition parser.hpp:39
string path1
Path to first code file being compared.
Definition parser.hpp:32
bool operator==(const Comparation &com) const
Equality comparison operator.
Definition parser.cpp:21
string path2
Path to second code file being compared.
Definition parser.hpp:33