Refactored sequence diagram translation unit visitor

This commit is contained in:
Bartek Kryza
2022-12-25 16:08:39 +01:00
parent edc35876b2
commit 87f6616783
2 changed files with 262 additions and 205 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -57,16 +57,16 @@ public:
bool TraverseLambdaExpr(clang::LambdaExpr *expr);
bool VisitCXXMethodDecl(clang::CXXMethodDecl *method);
bool VisitCXXMethodDecl(clang::CXXMethodDecl *declaration);
bool VisitCXXRecordDecl(clang::CXXRecordDecl *cls);
bool VisitCXXRecordDecl(clang::CXXRecordDecl *declaration);
bool VisitClassTemplateDecl(clang::ClassTemplateDecl *cls);
bool VisitClassTemplateDecl(clang::ClassTemplateDecl *declaration);
bool VisitClassTemplateSpecializationDecl(
clang::ClassTemplateSpecializationDecl *cls);
clang::ClassTemplateSpecializationDecl *declaration);
bool VisitFunctionDecl(clang::FunctionDecl *function_declaration);
bool VisitFunctionDecl(clang::FunctionDecl *declaration);
bool VisitFunctionTemplateDecl(
clang::FunctionTemplateDecl *function_declaration);
@@ -172,7 +172,10 @@ private:
bool should_include(const clang::ClassTemplateDecl *decl) const;
std::unique_ptr<clanguml::sequence_diagram::model::class_>
create_class_declaration(clang::CXXRecordDecl *cls);
create_class_model(clang::CXXRecordDecl *cls);
std::unique_ptr<clanguml::sequence_diagram::model::method>
create_method_model(clang::CXXMethodDecl *cls);
bool process_template_parameters(
const clang::TemplateDecl &template_declaration,
@@ -181,6 +184,12 @@ private:
std::unique_ptr<model::function_template>
build_function_template_instantiation(const clang::FunctionDecl &pDecl);
std::unique_ptr<model::function> build_function_model(
const clang::FunctionDecl &declaration);
std::unique_ptr<model::function_template> build_function_template(
const clang::FunctionTemplateDecl &declaration);
void build_template_instantiation_process_template_arguments(
model::template_trait *parent,
std::deque<std::tuple<std::string, int, bool>> &template_base_params,