diff --git a/Makefile b/Makefile index a712db46..f87939cb 100644 --- a/Makefile +++ b/Makefile @@ -94,12 +94,15 @@ install: release make -C release install DESTDIR=${DESTDIR} test_diagrams: test - plantuml -tsvg debug/tests/diagrams/puml/*.puml - python3 util/validate_json.py debug/tests/diagrams/json/*.json - python3 util/generate_mermaid.py debug/tests/diagrams/mermaid/*.mmd + mkdir -p debug/tests/diagrams/plantuml + mkdir -p debug/tests/diagrams/mermaid + plantuml -tsvg -nometadata -o plantuml debug/tests/diagrams/*.puml + python3 util/validate_json.py debug/tests/diagrams/*.json + python3 util/generate_mermaid.py debug/tests/diagrams/*.mmd document_test_cases: test_diagrams python3 util/generate_test_cases_docs.py + # Format generated SVG files python3 util/format_svg.py docs/test_cases/*.svg clanguml_diagrams: debug @@ -110,7 +113,8 @@ clanguml_diagrams: debug plantuml -tsvg -nometadata -o plantuml docs/diagrams/*.puml # Convert .mmd files to svg images python3 util/generate_mermaid.py docs/diagrams/*.mmd - python3 util/format_svg.py docs/diagrams/plantuml/*.svg + # Format generated SVG files + python3 util/format_svg.py docs/diagrams/*.svg .PHONY: submodules submodules: diff --git a/docs/test_cases/t00002.md b/docs/test_cases/t00002.md index e36492f1..07593295 100644 --- a/docs/test_cases/t00002.md +++ b/docs/test_cases/t00002.md @@ -114,8 +114,10 @@ private: } // namespace clanguml ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t00002_class](./t00002_class.svg "Basic class inheritance") +## Generated Mermaid diagrams +![t00002_class](./t00002_class_mermaid.svg "Basic class inheritance") ## Generated JSON models ```json { @@ -618,8 +620,8 @@ private: } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t00002_class", diff --git a/docs/test_cases/t00002_class.svg b/docs/test_cases/t00002_class.svg index c7a4fe72..e9cffe1c 100644 --- a/docs/test_cases/t00002_class.svg +++ b/docs/test_cases/t00002_class.svg @@ -1,6 +1,6 @@ - + @@ -9,123 +9,123 @@ - - + + A - + - + foo_a() = 0 : void - + - + foo_c() = 0 : void - - + + B - + - + foo_a() : void - - + + C - + - + foo_c() : void - - + + D - + - + foo_a() : void - + - + foo_c() : void - + - + as : std::vector<A *> - - + + E - + - + foo_a() : void - + - + foo_c() : void - + - + as : std::vector<A *> - + This is class A - + This is class B - + This is class D diff --git a/docs/test_cases/t00002_class_mermaid.svg b/docs/test_cases/t00002_class_mermaid.svg new file mode 100644 index 00000000..89855b06 --- /dev/null +++ b/docs/test_cases/t00002_class_mermaid.svg @@ -0,0 +1,289 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ + -as + +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ + -as + +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+
+ + + + + + + + +
+ «abstract» +
+
+ +
+ A +
+
+ +
+ +foo_a() : void +
+
+ +
+ +foo_c() : void +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ B +
+
+ +
+ +foo_a() : void +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ C +
+
+ +
+ +foo_c() : void +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ D +
+
+ +
+ -as : std::vector<A *> +
+
+ +
+ +foo_a() : void +
+
+ +
+ +foo_c() : void +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ E +
+
+ +
+ -as : std::vector<A *> +
+
+ +
+ +foo_a() : void +
+
+ +
+ +foo_c() : void +
+
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t00003.md b/docs/test_cases/t00003.md index f5c4d34e..67f9cd09 100644 --- a/docs/test_cases/t00003.md +++ b/docs/test_cases/t00003.md @@ -94,8 +94,10 @@ int A::static_int = 1; } // namespace clanguml ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t00003_class](./t00003_class.svg "Class fields and methods") +## Generated Mermaid diagrams +![t00003_class](./t00003_class_mermaid.svg "Class fields and methods") ## Generated JSON models ```json { @@ -307,7 +309,7 @@ int A::static_int = 1; "parameters": [ { "name": "", - "type": "clanguml::t00003::A &&" + "type": "A &&" } ], "source_location": { @@ -337,7 +339,7 @@ int A::static_int = 1; "parameters": [ { "name": "", - "type": "const clanguml::t00003::A &" + "type": "const A &" } ], "source_location": { @@ -496,7 +498,7 @@ int A::static_int = 1; "line": 30, "translation_unit": "../../tests/t00003/t00003.cc" }, - "type": "clanguml::t00003::A &" + "type": "A &" }, { "access": "public", @@ -517,7 +519,7 @@ int A::static_int = 1; "parameters": [ { "name": "other", - "type": "clanguml::t00003::A &&" + "type": "A &&" } ], "source_location": { @@ -526,7 +528,7 @@ int A::static_int = 1; "line": 36, "translation_unit": "../../tests/t00003/t00003.cc" }, - "type": "clanguml::t00003::A &" + "type": "A &" }, { "access": "public", @@ -547,7 +549,7 @@ int A::static_int = 1; "parameters": [ { "name": "other", - "type": "clanguml::t00003::A &" + "type": "A &" } ], "source_location": { @@ -556,7 +558,7 @@ int A::static_int = 1; "line": 37, "translation_unit": "../../tests/t00003/t00003.cc" }, - "type": "clanguml::t00003::A &" + "type": "A &" }, { "access": "public", @@ -741,7 +743,7 @@ int A::static_int = 1; "line": 50, "translation_unit": "../../tests/t00003/t00003.cc" }, - "type": "clanguml::t00003::A" + "type": "A" }, { "access": "protected", @@ -831,8 +833,8 @@ int A::static_int = 1; } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t00003_class", diff --git a/docs/test_cases/t00003_class.svg b/docs/test_cases/t00003_class.svg index a0f29032..b5e80234 100644 --- a/docs/test_cases/t00003_class.svg +++ b/docs/test_cases/t00003_class.svg @@ -1,6 +1,6 @@ - + @@ -9,227 +9,227 @@ - - + + A - + - + A() = default : void - + - + A(int i) : void - + - + A(A &&) = default : void - + - + A(const A &) = deleted : void A<T>(T t) : void - + - + ~A() = default : void - + - + operator=(A && other) noexcept : A & - + - + operator=(A & other) noexcept : A & - + - + operator++() : A & - + - + auto_method() : int - + - + basic_method() : void - + - + const_method() const : void - + - + create_from_int(int i) : A - + - + default_int(int i = 12) : int - + - + default_string(int i, std::string s = "abc") : std::string - + - + double_int(const int i) : int - + - + private_method() : void - + - + protected_method() : void - + - + size() constexpr const : std::size_t - + - + static_method() : int - + - + sum(const double a, const double b) : int - + - + a_ : int - + - + auto_member : const unsigned long - + - + b_ : int - + - + c_ : int - + - + compare : std::function<bool (const int)> - + - + private_member : int - + - + protected_member : int - + - + public_member : int - + - + static_const_int : const int - + - + static_int : int diff --git a/docs/test_cases/t00003_class_mermaid.svg b/docs/test_cases/t00003_class_mermaid.svg new file mode 100644 index 00000000..5e91cf2e --- /dev/null +++ b/docs/test_cases/t00003_class_mermaid.svg @@ -0,0 +1,232 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ A +
+
+ +
+ -a_ : int +
+
+ +
+ +auto_member : const unsigned long +
+
+ +
+ -b_ : int +
+
+ +
+ -c_ : int +
+
+ +
+ #compare : std::function<bool (const int)> +
+
+ +
+ -private_member : int +
+
+ +
+ #protected_member : int +
+
+ +
+ +public_member : int +
+
+ +
+ +static_const_int : const int +
+
+ +
+ +static_int : int +
+
+ +
+ +A() : void +
+
+ +
+ +A(int i) : void +
+
+ +
+ +A(A &&) : void +
+
+ +
+ +A(const A &) : void +
+
+ +
+ +A(T t) : void +
+
+ +
+ +~A() : void +
+
+ +
+ +operator=(A && other) : A & +
+
+ +
+ +operator=(A & other) : A & +
+
+ +
+ +operator++() : A & +
+
+ +
+ +auto_method() : int +
+
+ +
+ +basic_method() : void +
+
+ +
+ +const_method() : void +
+
+ +
+ +create_from_int(int i) : A +
+
+ +
+ +default_int(int i = 12) : int +
+
+ +
+ +default_string(int i, std::string s = "abc") : std::string +
+
+ +
+ +double_int(const int i) : int +
+
+ +
+ -private_method() : void +
+
+ +
+ #protected_method() : void +
+
+ +
+ +size() : std::size_t +
+
+ +
+ +static_method() : int +
+
+ +
+ +sum(const double a, const double b) : int +
+
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t00004.md b/docs/test_cases/t00004.md index 55005143..712fc9c6 100644 --- a/docs/test_cases/t00004.md +++ b/docs/test_cases/t00004.md @@ -74,8 +74,10 @@ public: } // namespace clanguml ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t00004_class](./t00004_class.svg "Nested classes and enums") +## Generated Mermaid diagrams +![t00004_class](./t00004_class_mermaid.svg "Nested classes and enums") ## Generated JSON models ```json { @@ -528,8 +530,8 @@ public: } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t00004_class", diff --git a/docs/test_cases/t00004_class.svg b/docs/test_cases/t00004_class.svg index 80f7fd69..d2e512cb 100644 --- a/docs/test_cases/t00004_class.svg +++ b/docs/test_cases/t00004_class.svg @@ -1,6 +1,6 @@ - + @@ -9,16 +9,16 @@ - - + + B - - + + B::AA @@ -28,38 +28,38 @@ AA_3 - - + + A - + - + foo() const : void - + - + foo2() const : void - - + + A::AA - - + + A::AA::Lights @@ -69,16 +69,16 @@ Red - - + + A::AA::AAA - - + + C::B @@ -87,8 +87,8 @@ - - + + C @@ -97,38 +97,38 @@ - + - + b_int : B<int> - + - + t : T - - + + C::AA - - + + C::AA::AAA - - + + C::AA::CCC @@ -137,8 +137,8 @@ CCC_2 - - + + C::B @@ -147,15 +147,15 @@ - + - + b : V - - + + C::CC @@ -164,16 +164,16 @@ CC_2 - - + + detail::D - - + + detail::D::AA @@ -183,8 +183,8 @@ AA_3 - - + + detail::D::DD diff --git a/docs/test_cases/t00004_class_mermaid.svg b/docs/test_cases/t00004_class_mermaid.svg new file mode 100644 index 00000000..d3147d30 --- /dev/null +++ b/docs/test_cases/t00004_class_mermaid.svg @@ -0,0 +1,598 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+
+ + + +
+ + [nested] + +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ + [nested] + +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ + +b_int + +
+
+
+
+ + + +
+ + [nested] + +
+
+
+
+ + + +
+ + [nested] + +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ + [nested] + +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ + [nested] + +
+
+
+
+
+ + + + + + + + +
+ +
+
+ +
+ B +
+
+
+
+
+ + + + + + + +
+ «Enumeration» +
+
+ +
+ B::AA +
+
+ +
+ AA_1 +
+
+ +
+ AA_2 +
+
+ +
+ AA_3 +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A +
+
+ +
+ +foo() : void +
+
+ +
+ +foo2() : void +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A::AA +
+
+
+
+
+ + + + + + + +
+ «Enumeration» +
+
+ +
+ A::AA::Lights +
+
+ +
+ Green +
+
+ +
+ Yellow +
+
+ +
+ Red +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A::AA::AAA +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ C::B<int> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ C<T> +
+
+ +
+ +b_int : B<int> +
+
+ +
+ +t : T +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ C::AA +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ C::AA::AAA +
+
+
+
+
+ + + + + + + +
+ «Enumeration» +
+
+ +
+ C::AA::CCC +
+
+ +
+ CCC_1 +
+
+ +
+ CCC_2 +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ C::B<V> +
+
+ +
+ -b : V +
+
+
+
+
+ + + + + + + +
+ «Enumeration» +
+
+ +
+ C::CC +
+
+ +
+ CC_1 +
+
+ +
+ CC_2 +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ detail::D +
+
+
+
+
+ + + + + + + +
+ «Enumeration» +
+
+ +
+ detail::D::AA +
+
+ +
+ AA_1 +
+
+ +
+ AA_2 +
+
+ +
+ AA_3 +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ detail::D::DD +
+
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t00005.md b/docs/test_cases/t00005.md index 9ab741bc..fe152111 100644 --- a/docs/test_cases/t00005.md +++ b/docs/test_cases/t00005.md @@ -64,8 +64,10 @@ public: } // namespace clanguml ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t00005_class](./t00005_class.svg "Basic class field relationships") +## Generated Mermaid diagrams +![t00005_class](./t00005_class_mermaid.svg "Basic class field relationships") ## Generated JSON models ```json { @@ -381,7 +383,7 @@ public: "line": 31, "translation_unit": "../../tests/t00005/t00005.cc" }, - "type": "clanguml::t00005::A" + "type": "A" }, { "access": "public", @@ -393,7 +395,7 @@ public: "line": 32, "translation_unit": "../../tests/t00005/t00005.cc" }, - "type": "clanguml::t00005::B *" + "type": "B *" }, { "access": "public", @@ -405,7 +407,7 @@ public: "line": 33, "translation_unit": "../../tests/t00005/t00005.cc" }, - "type": "clanguml::t00005::C &" + "type": "C &" }, { "access": "public", @@ -417,7 +419,7 @@ public: "line": 34, "translation_unit": "../../tests/t00005/t00005.cc" }, - "type": "const clanguml::t00005::D *" + "type": "const D *" }, { "access": "public", @@ -429,7 +431,7 @@ public: "line": 35, "translation_unit": "../../tests/t00005/t00005.cc" }, - "type": "const clanguml::t00005::E &" + "type": "const E &" }, { "access": "public", @@ -441,7 +443,7 @@ public: "line": 36, "translation_unit": "../../tests/t00005/t00005.cc" }, - "type": "clanguml::t00005::F &&" + "type": "F &&" }, { "access": "public", @@ -453,7 +455,7 @@ public: "line": 37, "translation_unit": "../../tests/t00005/t00005.cc" }, - "type": "clanguml::t00005::G **" + "type": "G **" }, { "access": "public", @@ -465,7 +467,7 @@ public: "line": 38, "translation_unit": "../../tests/t00005/t00005.cc" }, - "type": "clanguml::t00005::H ***" + "type": "H ***" }, { "access": "public", @@ -477,7 +479,7 @@ public: "line": 39, "translation_unit": "../../tests/t00005/t00005.cc" }, - "type": "clanguml::t00005::I *&" + "type": "I *&" }, { "access": "public", @@ -489,7 +491,7 @@ public: "line": 40, "translation_unit": "../../tests/t00005/t00005.cc" }, - "type": "volatile clanguml::t00005::J *" + "type": "volatile J *" }, { "access": "public", @@ -501,7 +503,7 @@ public: "line": 41, "translation_unit": "../../tests/t00005/t00005.cc" }, - "type": "clanguml::t00005::K *" + "type": "K *" } ], "methods": [], @@ -518,8 +520,8 @@ public: } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t00005_class", diff --git a/docs/test_cases/t00005_class.svg b/docs/test_cases/t00005_class.svg index 39221f16..6070b1dd 100644 --- a/docs/test_cases/t00005_class.svg +++ b/docs/test_cases/t00005_class.svg @@ -1,6 +1,6 @@ - + @@ -9,205 +9,205 @@ - - + + A - - + + B - - + + C - - + + D - - + + E - - + + F - - + + G - - + + H - - + + I - - + + J - - + + K - - + + R - + - + a : A - + - + b : B * - + - + c : C & - + - + d : const D * - + - + e : const E & - + - + f : F && - + - + g : G ** - + - + h : H *** - + - + i : I *& - + - + j : volatile J * - + - + k : K * - + - + some_int : int - + - + some_int_pointer : int * - + - + some_int_pointer_pointer : int ** - + - + some_int_reference : int & diff --git a/docs/test_cases/t00005_class_mermaid.svg b/docs/test_cases/t00005_class_mermaid.svg new file mode 100644 index 00000000..7643ce4c --- /dev/null +++ b/docs/test_cases/t00005_class_mermaid.svg @@ -0,0 +1,495 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +a + +
+
+
+
+ + + +
+ + +b + +
+
+
+
+ + + +
+ + +c + +
+
+
+
+ + + +
+ + +d + +
+
+
+
+ + + +
+ + +e + +
+
+
+
+ + + +
+ + +f + +
+
+
+
+ + + +
+ + +g + +
+
+
+
+ + + +
+ + +h + +
+
+
+
+ + + +
+ + +i + +
+
+
+
+ + + +
+ + +j + +
+
+
+
+ + + +
+ + +k + +
+
+
+
+
+ + + + + + + + +
+ +
+
+ +
+ A +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ B +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ C +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ D +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ E +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ F +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ G +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ H +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ I +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ J +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ K +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ R +
+
+ +
+ +a : A +
+
+ +
+ +b : B +
+
+ +
+ +c : C & +
+
+ +
+ +d : const D +
+
+ +
+ +e : const E & +
+
+ +
+ +f : F && +
+
+ +
+ +g : G * +
+
+ +
+ +h : H ** +
+
+ +
+ +i : I *& +
+
+ +
+ +j : volatile J +
+
+ +
+ +k : K +
+
+ +
+ +some_int : int +
+
+ +
+ +some_int_pointer : int +
+
+ +
+ +some_int_pointer_pointer : int * +
+
+ +
+ +some_int_reference : int & +
+
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t00006.md b/docs/test_cases/t00006.md index 6bf1d77e..7f90693e 100644 --- a/docs/test_cases/t00006.md +++ b/docs/test_cases/t00006.md @@ -88,8 +88,10 @@ public: } // namespace clanguml ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t00006_class](./t00006_class.svg "Class field relationships inferred from templates") +## Generated Mermaid diagrams +![t00006_class](./t00006_class_mermaid.svg "Class field relationships inferred from templates") ## Generated JSON models ```json { @@ -586,7 +588,7 @@ public: "line": 52, "translation_unit": "../../tests/t00006/t00006.cc" }, - "type": "custom_container" + "type": "custom_container" }, { "access": "public", @@ -646,7 +648,7 @@ public: "line": 60, "translation_unit": "../../tests/t00006/t00006.cc" }, - "type": "clanguml::t00006::J[10]" + "type": "J[10]" }, { "access": "public", @@ -658,7 +660,7 @@ public: "line": 61, "translation_unit": "../../tests/t00006/t00006.cc" }, - "type": "clanguml::t00006::K *[20]" + "type": "K *[20]" }, { "access": "public", @@ -699,8 +701,8 @@ public: } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t00006_class", diff --git a/docs/test_cases/t00006_class.svg b/docs/test_cases/t00006_class.svg index 5c7f15e2..fcf595a4 100644 --- a/docs/test_cases/t00006_class.svg +++ b/docs/test_cases/t00006_class.svg @@ -1,6 +1,6 @@ - + @@ -9,136 +9,136 @@ - - + + A - - + + B - - + + C - - + + D - - + + E - - + + F - - + + G - - + + H - - + + I - - + + J - - + + K - - + + L - - + + M - - + + N - - + + NN - - + + NNN - - + + custom_container @@ -147,15 +147,15 @@ - + - + data : std::vector<T> - - + + custom_container @@ -164,103 +164,103 @@ - - + + R - + - + a : std::vector<A> - + - + b : std::vector<B *> - + - + c : std::map<int,C> - + - + d : std::map<int,D *> - + - + e : custom_container<E> - + - + f : std::vector<std::vector<F>> - + - + g : std::map<int,std::vector<G *>> - + - + h : std::array<H,10> - + - + i : std::array<I *,5> - + - + j : J[10] - + - + k : K *[20] - + - + lm : std::vector<std::pair<L,M>> - + - + ns : std::tuple<N,NN,NNN> diff --git a/docs/test_cases/t00006_class_mermaid.svg b/docs/test_cases/t00006_class_mermaid.svg new file mode 100644 index 00000000..3c8f0c9b --- /dev/null +++ b/docs/test_cases/t00006_class_mermaid.svg @@ -0,0 +1,703 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ + +a + +
+
+
+
+ + + +
+ + +b + +
+
+
+
+ + + +
+ + +c + +
+
+
+
+ + + +
+ + +d + +
+
+
+
+ + + +
+ + +e + +
+
+
+
+ + + +
+ + +f + +
+
+
+
+ + + +
+ + +g + +
+
+
+
+ + + +
+ + +h + +
+
+
+
+ + + +
+ + +i + +
+
+
+
+ + + +
+ + +j + +
+
+
+
+ + + +
+ + +k + +
+
+
+
+ + + +
+ + +lm + +
+
+
+
+ + + +
+ + +lm + +
+
+
+
+ + + +
+ + +ns + +
+
+
+
+ + + +
+ + +ns + +
+
+
+
+ + + +
+ + +ns + +
+
+
+
+
+ + + + + + + + +
+ +
+
+ +
+ A +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ B +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ C +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ D +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ E +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ F +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ G +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ H +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ I +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ J +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ K +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ L +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ M +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ N +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ NN +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ NNN +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ custom_container<T> +
+
+ +
+ +data : std::vector<T> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ custom_container<E> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ R +
+
+ +
+ +a : std::vector<A> +
+
+ +
+ +b : std::vector<B *> +
+
+ +
+ +c : std::map<int,C> +
+
+ +
+ +d : std::map<int,D *> +
+
+ +
+ +e : custom_container<E> +
+
+ +
+ +f : std::vector<std::vector<F>> +
+
+ +
+ +g : std::map<int,std::vector<G *>> +
+
+ +
+ +h : std::array<H,10> +
+
+ +
+ +i : std::array<I *,5> +
+
+ +
+ +j : J[10] +
+
+ +
+ +k : K *[20] +
+
+ +
+ +lm : std::vector<std::pair<L,M>> +
+
+ +
+ +ns : std::tuple<N,NN,NNN> +
+
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t00007.md b/docs/test_cases/t00007.md index 7cb51a11..410b5a7b 100644 --- a/docs/test_cases/t00007.md +++ b/docs/test_cases/t00007.md @@ -38,8 +38,10 @@ public: } // namespace clanguml ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t00007_class](./t00007_class.svg "Smart pointers") +## Generated Mermaid diagrams +![t00007_class](./t00007_class_mermaid.svg "Smart pointers") ## Generated JSON models ```json { @@ -172,8 +174,8 @@ public: } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t00007_class", diff --git a/docs/test_cases/t00007_class.svg b/docs/test_cases/t00007_class.svg index 73b2f6ee..b902e5d7 100644 --- a/docs/test_cases/t00007_class.svg +++ b/docs/test_cases/t00007_class.svg @@ -1,6 +1,6 @@ - + @@ -9,57 +9,57 @@ - - + + A - - + + B - - + + C - - + + R - + - + a : std::unique_ptr<A> - + - + b : std::shared_ptr<B> - + - + c : std::weak_ptr<C> diff --git a/docs/test_cases/t00007_class_mermaid.svg b/docs/test_cases/t00007_class_mermaid.svg new file mode 100644 index 00000000..182b5119 --- /dev/null +++ b/docs/test_cases/t00007_class_mermaid.svg @@ -0,0 +1,187 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +a + +
+
+
+
+ + + +
+ + +b + +
+
+
+
+ + + +
+ + +c + +
+
+
+
+
+ + + + + + + + +
+ +
+
+ +
+ A +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ B +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ C +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ R +
+
+ +
+ +a : std::unique_ptr<A> +
+
+ +
+ +b : std::shared_ptr<B> +
+
+ +
+ +c : std::weak_ptr<C> +
+
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t00008.md b/docs/test_cases/t00008.md index ba236715..50bf46b6 100644 --- a/docs/test_cases/t00008.md +++ b/docs/test_cases/t00008.md @@ -71,8 +71,10 @@ template <> struct E::nested_template { } // namespace clanguml ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t00008_class](./t00008_class.svg "Template and template template relationships") +## Generated Mermaid diagrams +![t00008_class](./t00008_class_mermaid.svg "Template and template template relationships") ## Generated JSON models ```json { @@ -80,8 +82,8 @@ template <> struct E::nested_template { "elements": [ { "bases": [], - "display_name": "clanguml::t00008::A", - "id": "1657660300852090121", + "display_name": "clanguml::t00008::A", + "id": "2293517130897538130", "is_abstract": false, "is_nested": false, "is_struct": false, @@ -158,7 +160,7 @@ template <> struct E::nested_template { "line": 17, "translation_unit": "../../tests/t00008/t00008.cc" }, - "type": "clanguml::t00008::CMP" + "type": "CMP" } ], "methods": [], @@ -189,7 +191,7 @@ template <> struct E::nested_template { "is_variadic": false, "kind": "non_type_template", "template_parameters": [], - "type": "clanguml::t00008::CMP" + "type": "CMP" }, { "default": "3", @@ -478,7 +480,7 @@ template <> struct E::nested_template { "line": 40, "translation_unit": "../../tests/t00008/t00008.cc" }, - "type": "clanguml::t00008::E::nested_template::DT *" + "type": "DT *" } ], "name": "E::nested_template", @@ -538,7 +540,7 @@ template <> struct E::nested_template { "line": 47, "translation_unit": "../../tests/t00008/t00008.cc" }, - "type": "clanguml::t00008::E::nested_template::DeclType *" + "type": "DeclType *" } ], "name": "E::nested_template", @@ -561,8 +563,8 @@ template <> struct E::nested_template { } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t00008_class", diff --git a/docs/test_cases/t00008_class.svg b/docs/test_cases/t00008_class.svg index 60242514..192e051d 100644 --- a/docs/test_cases/t00008_class.svg +++ b/docs/test_cases/t00008_class.svg @@ -1,6 +1,6 @@ - + - + @@ -9,8 +9,8 @@ - - + + A @@ -19,50 +19,50 @@ - + - + comparator : CMP - + - + ints : std::array<int,N> - + - + pointer : T * - + - + reference : T & - + - + value : T - + - + values : std::vector<P> - - + + Vector @@ -71,15 +71,15 @@ - + - + values : std::vector<T> - - + + B @@ -88,15 +88,15 @@ - + - + template_template : C<T> - - + + B @@ -105,8 +105,8 @@ - - + + D @@ -115,78 +115,78 @@ D<Items...>(std::tuple<Items...> *) : void - + - + add(int i) : void - + - + ints : B<int,Vector> - - - - - E - - + + + + + E + + - - - - - E::nested_template - - ET - + + + + + E::nested_template + + ET + - - - + + + - - get(ET * d) : E::nested_template::DT * + + get(ET * d) : DT * - - - - - - E::nested_template - - char - + + + + + + E::nested_template + + char + - - - + + + - - getDecl(char * c) : E::nested_template<char>::DeclType * + + getDecl(char * c) : DeclType * - + ints - - - - - - - - - - + + + + + + + + + + diff --git a/docs/test_cases/t00008_class_mermaid.svg b/docs/test_cases/t00008_class_mermaid.svg new file mode 100644 index 00000000..51d49a31 --- /dev/null +++ b/docs/test_cases/t00008_class_mermaid.svg @@ -0,0 +1,333 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+
+ + + +
+ + +ints + +
+
+
+
+ + + +
+ + [nested] + +
+
+
+
+ + + +
+ + [nested] + +
+
+
+
+ + + +
+ +
+
+
+
+
+ + + + + + + + +
+ +
+
+ +
+ A<T,P=T,CMP=nullptr,int N=3> +
+
+ +
+ +comparator : CMP +
+
+ +
+ +ints : std::array<int,N> +
+
+ +
+ +pointer : T +
+
+ +
+ +reference : T & +
+
+ +
+ +value : T +
+
+ +
+ +values : std::vector<P> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ Vector<T> +
+
+ +
+ +values : std::vector<T> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ B<T,C<>> +
+
+ +
+ +template_template : C<T> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ B<int,Vector> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ D +
+
+ +
+ +ints : B<int,Vector> +
+
+ +
+ +D(std::tuple *) : void +
+
+ +
+ +add(int i) : void +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ E +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ E::nested_template<ET> +
+
+ +
+ +get(ET * d) : DT * +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ E::nested_template<char> +
+
+ +
+ +getDecl(char * c) : DeclType * +
+
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t00009.md b/docs/test_cases/t00009.md index c71d264a..d6360228 100644 --- a/docs/test_cases/t00009.md +++ b/docs/test_cases/t00009.md @@ -39,8 +39,10 @@ public: } // namespace clanguml ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t00009_class](./t00009_class.svg "Template instantiation") +## Generated Mermaid diagrams +![t00009_class](./t00009_class_mermaid.svg "Template instantiation") ## Generated JSON models ```json { @@ -243,8 +245,8 @@ public: } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t00009_class", diff --git a/docs/test_cases/t00009_class.svg b/docs/test_cases/t00009_class.svg index c227ba31..72c861d5 100644 --- a/docs/test_cases/t00009_class.svg +++ b/docs/test_cases/t00009_class.svg @@ -1,6 +1,6 @@ - + @@ -9,8 +9,8 @@ - - + + A @@ -19,15 +19,15 @@ - + - + value : T - - + + A @@ -36,8 +36,8 @@ - - + + A @@ -46,8 +46,8 @@ - - + + A @@ -56,33 +56,33 @@ - - + + B - + - + aint : A<int> - + - + astring : A<std::string> * - + - + avector : A<std::vector<std::string>> & diff --git a/docs/test_cases/t00009_class_mermaid.svg b/docs/test_cases/t00009_class_mermaid.svg new file mode 100644 index 00000000..baab15d2 --- /dev/null +++ b/docs/test_cases/t00009_class_mermaid.svg @@ -0,0 +1,241 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ + +aint + +
+
+
+
+ + + +
+ + +astring + +
+
+
+
+ + + +
+ + +avector + +
+
+
+
+
+ + + + + + + + +
+ +
+
+ +
+ A<T> +
+
+ +
+ +value : T +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A<int> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A<std::string> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A<std::vector<std::string>> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ B +
+
+ +
+ +aint : A<int> +
+
+ +
+ +astring : A<std::string> +
+
+ +
+ +avector : A<std::vector<std::string>> & +
+
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t00010.md b/docs/test_cases/t00010.md index e98defe3..cefeaf32 100644 --- a/docs/test_cases/t00010.md +++ b/docs/test_cases/t00010.md @@ -43,8 +43,10 @@ public: } // namespace clanguml ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t00010_class](./t00010_class.svg "Basic template instantiation") +## Generated Mermaid diagrams +![t00010_class](./t00010_class_mermaid.svg "Basic template instantiation") ## Generated JSON models ```json { @@ -253,8 +255,8 @@ public: } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t00010_class", diff --git a/docs/test_cases/t00010_class.svg b/docs/test_cases/t00010_class.svg index 5a470caf..1f81df81 100644 --- a/docs/test_cases/t00010_class.svg +++ b/docs/test_cases/t00010_class.svg @@ -1,6 +1,6 @@ - + @@ -9,8 +9,8 @@ - - + + A @@ -19,22 +19,22 @@ - + - + first : T - + - + second : P - - + + A @@ -43,8 +43,8 @@ - - + + B @@ -53,15 +53,15 @@ - + - + astring : A<T,std::string> - - + + B @@ -70,19 +70,19 @@ - - + + C - + - + aintstring : B<int> diff --git a/docs/test_cases/t00010_class_mermaid.svg b/docs/test_cases/t00010_class_mermaid.svg new file mode 100644 index 00000000..ca38fd41 --- /dev/null +++ b/docs/test_cases/t00010_class_mermaid.svg @@ -0,0 +1,219 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+
+ + + +
+ + +astring + +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ + +aintstring + +
+
+
+
+
+ + + + + + + + +
+ +
+
+ +
+ A<T,P> +
+
+ +
+ +first : T +
+
+ +
+ +second : P +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A<T,std::string> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ B<T> +
+
+ +
+ +astring : A<T,std::string> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ B<int> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ C +
+
+ +
+ +aintstring : B<int> +
+
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t00011.md b/docs/test_cases/t00011.md index 595a9081..5de47443 100644 --- a/docs/test_cases/t00011.md +++ b/docs/test_cases/t00011.md @@ -52,8 +52,10 @@ public: } // namespace clanguml ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t00011_class](./t00011_class.svg "Friend relationships") +## Generated Mermaid diagrams +![t00011_class](./t00011_class_mermaid.svg "Friend relationships") ## Generated JSON models ```json { @@ -169,7 +171,7 @@ public: "line": 29, "translation_unit": "../../tests/t00011/t00011.cc" }, - "type": "clanguml::t00011::A *" + "type": "A *" } ], "methods": [ @@ -212,8 +214,8 @@ public: } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t00011_class", diff --git a/docs/test_cases/t00011_class.svg b/docs/test_cases/t00011_class.svg index 11777f86..3f09cc83 100644 --- a/docs/test_cases/t00011_class.svg +++ b/docs/test_cases/t00011_class.svg @@ -1,6 +1,6 @@ - + @@ -9,8 +9,8 @@ - - + + D @@ -19,48 +19,48 @@ - + - + value : T - - + + A - + - + foo() : void - - + + B - + - + foo() : void - + - + m_a : A * diff --git a/docs/test_cases/t00011_class_mermaid.svg b/docs/test_cases/t00011_class_mermaid.svg new file mode 100644 index 00000000..6ce25e26 --- /dev/null +++ b/docs/test_cases/t00011_class_mermaid.svg @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +<> + +
+
+
+
+ + + +
+ + +m_a + +
+
+
+
+
+ + + + + + + + +
+ +
+
+ +
+ D<T> +
+
+ +
+ -value : T +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A +
+
+ +
+ +foo() : void +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ B +
+
+ +
+ +m_a : A +
+
+ +
+ +foo() : void +
+
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t00012.md b/docs/test_cases/t00012.md index daaf66f9..5b9c0bf6 100644 --- a/docs/test_cases/t00012.md +++ b/docs/test_cases/t00012.md @@ -59,8 +59,10 @@ class R { } // namespace clanguml ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t00012_class](./t00012_class.svg "Advanced template instantiations") +## Generated Mermaid diagrams +![t00012_class](./t00012_class_mermaid.svg "Advanced template instantiations") ## Generated JSON models ```json { @@ -554,8 +556,8 @@ class R { } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t00012_class", diff --git a/docs/test_cases/t00012_class.svg b/docs/test_cases/t00012_class.svg index ad4e4431..e1950354 100644 --- a/docs/test_cases/t00012_class.svg +++ b/docs/test_cases/t00012_class.svg @@ -1,6 +1,6 @@ - + @@ -9,8 +9,8 @@ - - + + A @@ -19,22 +19,22 @@ - + - + value : T - + - + values : std::variant<Ts...> - - + + B @@ -43,15 +43,15 @@ - + - + ints : std::array<int,sizeof...(Is)> - - + + C @@ -60,15 +60,15 @@ - + - + ints : std::array<T,sizeof...(Is)> - - + + A @@ -77,8 +77,8 @@ - - + + A @@ -87,8 +87,8 @@ - - + + B @@ -97,8 +97,8 @@ - - + + B @@ -107,8 +107,8 @@ - - + + C @@ -117,50 +117,50 @@ - - + + R - + - + a1 : A<int,std::string,float> - + - + a2 : A<int,std::string,bool> - + - + b1 : B<3,2,1> - + - + b2 : B<1,1,1,1> - + - + c1 : C<std::map<int,std::vector<std::vector<std::vector<std::string>>>>,3,3,3> - + Long template annotation diff --git a/docs/test_cases/t00012_class_mermaid.svg b/docs/test_cases/t00012_class_mermaid.svg new file mode 100644 index 00000000..6f87bda8 --- /dev/null +++ b/docs/test_cases/t00012_class_mermaid.svg @@ -0,0 +1,386 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ + -a1 + +
+
+
+
+ + + +
+ + -a2 + +
+
+
+
+ + + +
+ + -b1 + +
+
+
+
+ + + +
+ + -b2 + +
+
+
+
+ + + +
+ + -c1 + +
+
+
+
+
+ + + + + + + + +
+ +
+
+ +
+ A<T,Ts...> +
+
+ +
+ -value : T +
+
+ +
+ -values : std::variant<Ts...> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ B<int... Is> +
+
+ +
+ -ints : std::array<int,sizeof...(Is)> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ C<T,int... Is> +
+
+ +
+ -ints : std::array<T,sizeof...(Is)> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A<int,std::string,float> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A<int,std::string,bool> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ B<3,2,1> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ B<1,1,1,1> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ C<std::map<int,std::vector<std::vector<std::vector<std::string>>>>,3,3,3> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ R +
+
+ +
+ -a1 : A<int,std::string,float> +
+
+ +
+ -a2 : A<int,std::string,bool> +
+
+ +
+ -b1 : B<3,2,1> +
+
+ +
+ -b2 : B<1,1,1,1> +
+
+ +
+ -c1 : C<std::map<int,std::vector<std::vector<std::vector<std::string>>>>,3,3,3> +
+
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t00013.md b/docs/test_cases/t00013.md index 28b27b4a..574aca69 100644 --- a/docs/test_cases/t00013.md +++ b/docs/test_cases/t00013.md @@ -87,8 +87,10 @@ private: } // namespace clanguml ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t00013_class](./t00013_class.svg "Template instantiation relationships") +## Generated Mermaid diagrams +![t00013_class](./t00013_class_mermaid.svg "Template instantiation relationships") ## Generated JSON models ```json { @@ -313,7 +315,7 @@ private: "parameters": [ { "name": "r", - "type": "clanguml::t00013::R *" + "type": "R *" } ], "source_location": { @@ -592,7 +594,7 @@ private: "parameters": [ { "name": "a", - "type": "clanguml::t00013::A *" + "type": "A *" } ], "source_location": { @@ -622,7 +624,7 @@ private: "parameters": [ { "name": "b", - "type": "clanguml::t00013::B &" + "type": "B &" } ], "source_location": { @@ -652,7 +654,7 @@ private: "parameters": [ { "name": "b", - "type": "const clanguml::t00013::B &" + "type": "const B &" } ], "source_location": { @@ -682,7 +684,7 @@ private: "parameters": [ { "name": "c", - "type": "clanguml::t00013::C" + "type": "C" } ], "source_location": { @@ -712,7 +714,7 @@ private: "parameters": [ { "name": "d", - "type": "clanguml::t00013::D &&" + "type": "D &&" } ], "source_location": { @@ -742,7 +744,7 @@ private: "parameters": [ { "name": "d", - "type": "clanguml::t00013::D &&" + "type": "D &&" } ], "source_location": { @@ -905,8 +907,8 @@ private: } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t00013_class", diff --git a/docs/test_cases/t00013_class.svg b/docs/test_cases/t00013_class.svg index 94675b34..59a13c1b 100644 --- a/docs/test_cases/t00013_class.svg +++ b/docs/test_cases/t00013_class.svg @@ -1,6 +1,6 @@ - + @@ -9,8 +9,8 @@ - - + + ABCD::F @@ -19,15 +19,15 @@ - + - + f : T - - + + ABCD::F @@ -36,75 +36,75 @@ - - + + A - + - + a : int - - + + B - + - + b : int - - + + C - + - + c : int - - + + D - + - + print(R * r) : void - + - + d : int - - + + E @@ -113,15 +113,15 @@ - + - + e : T - - + + G @@ -130,22 +130,22 @@ - + - + args : std::tuple<Args...> - + - + g : T - - + + E @@ -154,8 +154,8 @@ - - + + G @@ -164,8 +164,8 @@ - - + + E @@ -174,93 +174,93 @@ - - + + R - + - + get_a(A * a) : int - + - + get_b(B & b) : int - + - + get_c(C c) : int - + - + get_const_b(const B & b) : int - + - + get_d(D && d) : int - + - + get_d2(D && d) : int get_e<T>(E<T> e) : T get_f<T>(const F<T> & f) : T - + - + get_int_e(const E<int> & e) : int - + - + get_int_e2(E<int> & e) : int - + - + get_int_f(const ABCD::F<int> & f) : int - + - + estring : E<std::string> - + - + gintstring : G<int,float,std::string> diff --git a/docs/test_cases/t00013_class_mermaid.svg b/docs/test_cases/t00013_class_mermaid.svg new file mode 100644 index 00000000..8cb4717f --- /dev/null +++ b/docs/test_cases/t00013_class_mermaid.svg @@ -0,0 +1,552 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ + +gintstring + +
+
+
+
+ + + +
+ + -estring + +
+
+
+
+
+ + + + + + + + +
+ +
+
+ +
+ ABCD::F<T> +
+
+ +
+ +f : T +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ ABCD::F<int> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A +
+
+ +
+ +a : int +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ B +
+
+ +
+ +b : int +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ C +
+
+ +
+ +c : int +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ D +
+
+ +
+ +d : int +
+
+ +
+ +print(R * r) : void +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ E<T> +
+
+ +
+ +e : T +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ G<T,Args...> +
+
+ +
+ +args : std::tuple<Args...> +
+
+ +
+ +g : T +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ E<int> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ G<int,float,std::string> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ E<std::string> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ R +
+
+ +
+ -estring : E<std::string> +
+
+ +
+ +gintstring : G<int,float,std::string> +
+
+ +
+ +get_a(A * a) : int +
+
+ +
+ +get_b(B & b) : int +
+
+ +
+ +get_c(C c) : int +
+
+ +
+ +get_const_b(const B & b) : int +
+
+ +
+ +get_d(D && d) : int +
+
+ +
+ +get_d2(D && d) : int +
+
+ +
+ +get_e(E e) : T +
+
+ +
+ +get_f(const F & f) : T +
+
+ +
+ +get_int_e(const E & e) : int +
+
+ +
+ +get_int_e2(E & e) : int +
+
+ +
+ +get_int_f(const ABCD::F & f) : int +
+
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t00014.md b/docs/test_cases/t00014.md index 71b713b2..c75fbbee 100644 --- a/docs/test_cases/t00014.md +++ b/docs/test_cases/t00014.md @@ -16,6 +16,9 @@ diagrams: plantuml: before: - left to right direction + mermaid: + before: + - direction LR ``` ## Source code File t00014.cc @@ -104,8 +107,10 @@ public: } // namespace clanguml ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t00014_class](./t00014_class.svg "Alias template instantiation") +## Generated Mermaid diagrams +![t00014_class](./t00014_class_mermaid.svg "Alias template instantiation") ## Generated JSON models ```json { @@ -298,8 +303,8 @@ public: "namespace": "clanguml::t00014", "source_location": { "column": 12, - "file": "../../../../../../usr/include/c++/12/bits/stl_iterator.h", - "line": 2611, + "file": "../../../../../../usr/include/c++/11/bits/stl_iterator.h", + "line": 2488, "translation_unit": "../../tests/t00014/t00014.cc" }, "template_parameters": [ @@ -333,8 +338,8 @@ public: "namespace": "clanguml::t00014", "source_location": { "column": 11, - "file": "../../../../../../usr/include/c++/12/bits/unique_ptr.h", - "line": 269, + "file": "../../../../../../usr/include/c++/11/bits/unique_ptr.h", + "line": 242, "translation_unit": "../../tests/t00014/t00014.cc" }, "template_parameters": [ @@ -368,8 +373,8 @@ public: "namespace": "clanguml::t00014", "source_location": { "column": 12, - "file": "../../../../../../usr/include/c++/12/bits/stl_iterator.h", - "line": 2611, + "file": "../../../../../../usr/include/c++/11/bits/stl_iterator.h", + "line": 2488, "translation_unit": "../../tests/t00014/t00014.cc" }, "template_parameters": [ @@ -403,8 +408,8 @@ public: "namespace": "clanguml::t00014", "source_location": { "column": 12, - "file": "../../../../../../usr/include/c++/12/bits/stl_iterator.h", - "line": 2611, + "file": "../../../../../../usr/include/c++/11/bits/stl_iterator.h", + "line": 2488, "translation_unit": "../../tests/t00014/t00014.cc" }, "template_parameters": [ @@ -438,8 +443,8 @@ public: "namespace": "clanguml::t00014", "source_location": { "column": 11, - "file": "../../../../../../usr/include/c++/12/bits/unique_ptr.h", - "line": 269, + "file": "../../../../../../usr/include/c++/11/bits/unique_ptr.h", + "line": 242, "translation_unit": "../../tests/t00014/t00014.cc" }, "template_parameters": [ @@ -473,8 +478,8 @@ public: "namespace": "clanguml::t00014", "source_location": { "column": 12, - "file": "../../../../../../usr/include/c++/12/bits/stl_iterator.h", - "line": 2611, + "file": "../../../../../../usr/include/c++/11/bits/stl_iterator.h", + "line": 2488, "translation_unit": "../../tests/t00014/t00014.cc" }, "template_parameters": [ @@ -508,8 +513,8 @@ public: "namespace": "clanguml::t00014", "source_location": { "column": 11, - "file": "../../../../../../usr/include/c++/12/bits/shared_ptr.h", - "line": 175, + "file": "../../../../../../usr/include/c++/11/bits/shared_ptr.h", + "line": 122, "translation_unit": "../../tests/t00014/t00014.cc" }, "template_parameters": [ @@ -690,7 +695,7 @@ public: "namespace": "clanguml::t00014", "source_location": { "column": 11, - "file": "../../../../../../usr/include/c++/12/bits/std_function.h", + "file": "../../../../../../usr/include/c++/11/bits/std_function.h", "line": 111, "translation_unit": "../../tests/t00014/t00014.cc" }, @@ -725,7 +730,7 @@ public: "namespace": "clanguml::t00014", "source_location": { "column": 11, - "file": "../../../../../../usr/include/c++/12/bits/std_function.h", + "file": "../../../../../../usr/include/c++/11/bits/std_function.h", "line": 111, "translation_unit": "../../tests/t00014/t00014.cc" }, @@ -837,7 +842,7 @@ public: "line": 66, "translation_unit": "../../tests/t00014/t00014.cc" }, - "type": "clanguml::t00014::AIntString" + "type": "AIntString" }, { "access": "private", @@ -849,7 +854,7 @@ public: "line": 67, "translation_unit": "../../tests/t00014/t00014.cc" }, - "type": "clanguml::t00014::AStringString" + "type": "AStringString" }, { "access": "private", @@ -861,7 +866,7 @@ public: "line": 68, "translation_unit": "../../tests/t00014/t00014.cc" }, - "type": "clanguml::t00014::BStringString" + "type": "BStringString" }, { "access": "private", @@ -885,7 +890,7 @@ public: "line": 72, "translation_unit": "../../tests/t00014/t00014.cc" }, - "type": "clanguml::t00014::BVector" + "type": "BVector" }, { "access": "public", @@ -897,7 +902,7 @@ public: "line": 75, "translation_unit": "../../tests/t00014/t00014.cc" }, - "type": "clanguml::t00014::BVector2" + "type": "BVector2" }, { "access": "public", @@ -909,7 +914,7 @@ public: "line": 76, "translation_unit": "../../tests/t00014/t00014.cc" }, - "type": "SimpleCallback" + "type": "SimpleCallback" }, { "access": "public", @@ -921,7 +926,7 @@ public: "line": 77, "translation_unit": "../../tests/t00014/t00014.cc" }, - "type": "GenericCallback" + "type": "GenericCallback" }, { "access": "public", @@ -933,7 +938,7 @@ public: "line": 78, "translation_unit": "../../tests/t00014/t00014.cc" }, - "type": "clanguml::t00014::VoidCallback" + "type": "VoidCallback" }, { "access": "public", @@ -945,7 +950,7 @@ public: "line": 79, "translation_unit": "../../tests/t00014/t00014.cc" }, - "type": "VectorPtr" + "type": "VectorPtr
" } ], "methods": [], @@ -969,8 +974,8 @@ public: } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t00014_class", diff --git a/docs/test_cases/t00014_class.svg b/docs/test_cases/t00014_class.svg index c467a9c1..a0c1c38c 100644 --- a/docs/test_cases/t00014_class.svg +++ b/docs/test_cases/t00014_class.svg @@ -1,6 +1,6 @@ - + - + @@ -9,414 +9,414 @@ - - - - - A - - T,P - - + + + + + A + + T,P + + - - - + + + - - p : P + + p : P - - - + + + - - t : T + + t : T - - - - - B - - + + + + + B + + - - - + + + - - value : std::string + + value : std::string - - - - - A - - T,std::string - - + + + + + A + + T,std::string + + - - - - - A - - T,std::unique_ptr<std::string> - - + + + + + A + + T,std::unique_ptr<std::string> + + - - - - - A - - long,T - - + + + + + A + + long,T + + - - - - - A - - double,T - - + + + + + A + + double,T + + - - - - - A - - long,U - - + + + + + A + + long,U + + - - - - - A - - long,bool - - + + + + + A + + long,bool + + - - - - - A - - double,bool - - + + + + + A + + double,bool + + - - - - - A - - long,float - - + + + + + A + + long,float + + - - - - - A - - double,float - - + + + + + A + + double,float + + - - - - - A - - bool,std::string - - + + + + + A + + bool,std::string + + - - - - - A - - float,std::unique_ptr<std::string> - - + + + + + A + + float,std::unique_ptr<std::string> + + - - - - - A - - int,std::string - - + + + + + A + + int,std::string + + - - - - - A - - std::string,std::string - - + + + + + A + + std::string,std::string + + - - - - - A - - char,std::string - - + + + + + A + + char,std::string + + - - - - - A - - wchar_t,std::string - - + + + + + A + + wchar_t,std::string + + - - - - - R - - T - - + + + + + R + + T + + - + - + abool : APtr<bool> - + - + aboolfloat : AAPtr<bool,float> - + - + afloat : ASharedPtr<float> - + - + atfloat : AAPtr<T,float> - + - + bapair : PairPairBA<bool> - + - + boolstring : A<bool,std::string> - + - + bs : BVector - + - + bs2 : BVector2 - + - + bstringstring : BStringString - + - + cb : SimpleCallback<ACharString> - + - + floatstring : AStringPtr<float> - + - - gcb : GenericCallback<R::AWCharString> + + gcb : GenericCallback<AWCharString> - + - + intstring : AIntString - + - + stringstring : AStringString - + - + vcb : VoidCallback - + - + vps : VectorPtr<B> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - bapair - - - - bs - - - - bs2 - - - - vps - - - - bapair - - - - abool - - - - aboolfloat - - - - aboolfloat - - - - atfloat - - - - afloat - - - - boolstring - - - - floatstring - - - - intstring - - - - stringstring - - - - bstringstring - - - - atfloat - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + bapair + + + + bs + + + + bs2 + + + + vps + + + + bapair + + + + abool + + + + aboolfloat + + + + aboolfloat + + + + atfloat + + + + afloat + + + + boolstring + + + + floatstring + + + + intstring + + + + stringstring + + + + bstringstring + + + + atfloat + + + + diff --git a/docs/test_cases/t00014_class_mermaid.svg b/docs/test_cases/t00014_class_mermaid.svg new file mode 100644 index 00000000..802d0c05 --- /dev/null +++ b/docs/test_cases/t00014_class_mermaid.svg @@ -0,0 +1,859 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ + -bapair + +
+
+
+
+ + + +
+ + -bapair + +
+
+
+
+ + + +
+ + -abool + +
+
+
+
+ + + +
+ + -aboolfloat + +
+
+
+
+ + + +
+ + -aboolfloat + +
+
+
+
+ + + +
+ + -afloat + +
+
+
+
+ + + +
+ + -boolstring + +
+
+
+
+ + + +
+ + -floatstring + +
+
+
+
+ + + +
+ + -intstring + +
+
+
+
+ + + +
+ + -stringstring + +
+
+
+
+ + + +
+ + -bstringstring + +
+
+
+
+ + + +
+ + -atfloat + +
+
+
+
+ + + +
+ + -atfloat + +
+
+
+
+ + + +
+ + #bs + +
+
+
+
+ + + +
+ + +bs2 + +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ + +vps + +
+
+
+
+
+ + + + + + + + +
+ +
+
+ +
+ A<T,P> +
+
+ +
+ +p : P +
+
+ +
+ +t : T +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ B +
+
+ +
+ +value : std::string +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A<T,std::string> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A<T,std::unique_ptr<std::string>> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A<long,T> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A<double,T> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A<long,U> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A<long,bool> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A<double,bool> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A<long,float> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A<double,float> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A<bool,std::string> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A<float,std::unique_ptr<std::string>> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A<int,std::string> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A<std::string,std::string> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A<char,std::string> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A<wchar_t,std::string> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ R<T> +
+
+ +
+ -abool : APtr<bool> +
+
+ +
+ -aboolfloat : AAPtr<bool,float> +
+
+ +
+ -afloat : ASharedPtr<float> +
+
+ +
+ -atfloat : AAPtr<T,float> +
+
+ +
+ -bapair : PairPairBA<bool> +
+
+ +
+ -boolstring : A<bool,std::string> +
+
+ +
+ #bs : BVector +
+
+ +
+ +bs2 : BVector2 +
+
+ +
+ -bstringstring : BStringString +
+
+ +
+ +cb : SimpleCallback<ACharString> +
+
+ +
+ -floatstring : AStringPtr<float> +
+
+ +
+ +gcb : GenericCallback<AWCharString> +
+
+ +
+ -intstring : AIntString +
+
+ +
+ -stringstring : AStringString +
+
+ +
+ +vcb : VoidCallback +
+
+ +
+ +vps : VectorPtr<B> +
+
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t00015.md b/docs/test_cases/t00015.md index 5ca19533..206a036d 100644 --- a/docs/test_cases/t00015.md +++ b/docs/test_cases/t00015.md @@ -47,8 +47,10 @@ class B : public ns1::ns2::Anon { }; } // namespace clanguml ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t00015_class](./t00015_class.svg "Namespace fun") +## Generated Mermaid diagrams +![t00015_class](./t00015_class_mermaid.svg "Namespace fun") ## Generated JSON models ```json { @@ -187,8 +189,8 @@ class B : public ns1::ns2::Anon { }; } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t00015_class", diff --git a/docs/test_cases/t00015_class.svg b/docs/test_cases/t00015_class.svg index 6d366176..793a44fa 100644 --- a/docs/test_cases/t00015_class.svg +++ b/docs/test_cases/t00015_class.svg @@ -1,6 +1,6 @@ - + @@ -9,40 +9,40 @@ - - + + ns1::A - - + + ns1::ns2_v0_9_0::A - - + + ns1::Anon - - + + ns3::ns1::ns2::Anon - - + + ns3::B diff --git a/docs/test_cases/t00015_class_mermaid.svg b/docs/test_cases/t00015_class_mermaid.svg new file mode 100644 index 00000000..9e34b027 --- /dev/null +++ b/docs/test_cases/t00015_class_mermaid.svg @@ -0,0 +1,185 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+
+ + + + + + + + +
+ +
+
+ +
+ ns1::A +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ ns1::ns2_v0_9_0::A +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ ns1::Anon +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ ns3::ns1::ns2::Anon +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ ns3::B +
+
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t00016.md b/docs/test_cases/t00016.md index c1ce09d6..301d2d9e 100644 --- a/docs/test_cases/t00016.md +++ b/docs/test_cases/t00016.md @@ -48,8 +48,10 @@ template <> struct is_numeric { } // namespace clanguml ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t00016_class](./t00016_class.svg "Unnamed enums and empty templates") +## Generated Mermaid diagrams +![t00016_class](./t00016_class_mermaid.svg "Unnamed enums and empty templates") ## Generated JSON models ```json { @@ -273,8 +275,8 @@ template <> struct is_numeric { } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t00016_class", diff --git a/docs/test_cases/t00016_class.svg b/docs/test_cases/t00016_class.svg index 6fd2ae8f..5951fc48 100644 --- a/docs/test_cases/t00016_class.svg +++ b/docs/test_cases/t00016_class.svg @@ -1,6 +1,6 @@ - + @@ -9,8 +9,8 @@ - - + + is_numeric @@ -21,8 +21,8 @@ value : enum - - + + is_numeric @@ -33,8 +33,8 @@ value : enum - - + + is_numeric @@ -45,8 +45,8 @@ value : enum - - + + is_numeric @@ -57,8 +57,8 @@ value : enum - - + + is_numeric @@ -69,8 +69,8 @@ value : enum - - + + is_numeric diff --git a/docs/test_cases/t00016_class_mermaid.svg b/docs/test_cases/t00016_class_mermaid.svg new file mode 100644 index 00000000..8c53c83c --- /dev/null +++ b/docs/test_cases/t00016_class_mermaid.svg @@ -0,0 +1,254 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+
+ + + + + + + + +
+ +
+
+ +
+ is_numeric<typename> +
+
+ +
+ +value : enum +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ is_numeric<float> +
+
+ +
+ +value : enum +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ is_numeric<char> +
+
+ +
+ +value : enum +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ is_numeric<unsigned int> +
+
+ +
+ +value : enum +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ is_numeric<int> +
+
+ +
+ +value : enum +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ is_numeric<bool> +
+
+ +
+ +value : enum +
+
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t00017.md b/docs/test_cases/t00017.md index dbaeb11f..3f89805b 100644 --- a/docs/test_cases/t00017.md +++ b/docs/test_cases/t00017.md @@ -76,8 +76,10 @@ private: } // namespace clanguml ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t00017_class](./t00017_class.svg "Test include relations also as members flag") +## Generated Mermaid diagrams +![t00017_class](./t00017_class_mermaid.svg "Test include relations also as members flag") ## Generated JSON models ```json { @@ -393,7 +395,7 @@ private: "line": 42, "translation_unit": "../../tests/t00017/t00017.cc" }, - "type": "clanguml::t00017::A" + "type": "A" }, { "access": "private", @@ -405,7 +407,7 @@ private: "line": 43, "translation_unit": "../../tests/t00017/t00017.cc" }, - "type": "clanguml::t00017::B *" + "type": "B *" }, { "access": "private", @@ -417,7 +419,7 @@ private: "line": 44, "translation_unit": "../../tests/t00017/t00017.cc" }, - "type": "clanguml::t00017::C &" + "type": "C &" }, { "access": "private", @@ -429,7 +431,7 @@ private: "line": 45, "translation_unit": "../../tests/t00017/t00017.cc" }, - "type": "const clanguml::t00017::D *" + "type": "const D *" }, { "access": "private", @@ -441,7 +443,7 @@ private: "line": 46, "translation_unit": "../../tests/t00017/t00017.cc" }, - "type": "const clanguml::t00017::E &" + "type": "const E &" }, { "access": "private", @@ -453,7 +455,7 @@ private: "line": 47, "translation_unit": "../../tests/t00017/t00017.cc" }, - "type": "clanguml::t00017::F &&" + "type": "F &&" }, { "access": "private", @@ -465,7 +467,7 @@ private: "line": 48, "translation_unit": "../../tests/t00017/t00017.cc" }, - "type": "clanguml::t00017::G **" + "type": "G **" }, { "access": "private", @@ -477,7 +479,7 @@ private: "line": 49, "translation_unit": "../../tests/t00017/t00017.cc" }, - "type": "clanguml::t00017::H ***" + "type": "H ***" }, { "access": "private", @@ -489,7 +491,7 @@ private: "line": 50, "translation_unit": "../../tests/t00017/t00017.cc" }, - "type": "clanguml::t00017::I *&" + "type": "I *&" }, { "access": "private", @@ -501,7 +503,7 @@ private: "line": 51, "translation_unit": "../../tests/t00017/t00017.cc" }, - "type": "volatile clanguml::t00017::J *" + "type": "volatile J *" }, { "access": "private", @@ -513,7 +515,7 @@ private: "line": 52, "translation_unit": "../../tests/t00017/t00017.cc" }, - "type": "clanguml::t00017::K *" + "type": "K *" } ], "methods": [ @@ -540,19 +542,19 @@ private: }, { "name": "cc", - "type": "clanguml::t00017::C &" + "type": "C &" }, { "name": "ee", - "type": "const clanguml::t00017::E &" + "type": "const E &" }, { "name": "ff", - "type": "clanguml::t00017::F &&" + "type": "F &&" }, { "name": "ii", - "type": "clanguml::t00017::I *&" + "type": "I *&" } ], "source_location": { @@ -577,8 +579,8 @@ private: } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t00017_class", diff --git a/docs/test_cases/t00017_class.svg b/docs/test_cases/t00017_class.svg index e81dfa22..48ae2fb9 100644 --- a/docs/test_cases/t00017_class.svg +++ b/docs/test_cases/t00017_class.svg @@ -1,6 +1,6 @@ - + @@ -9,135 +9,135 @@ - - + + A - - + + B - - + + C - - + + D - - + + E - - + + F - - + + G - - + + H - - + + I - - + + J - - + + K - - + + R - + - + R(int & some_int, C & cc, const E & ee, F && ff, I *& ii) : void - + - + some_int : int - + - + some_int_pointer : int * - + - + some_int_pointer_pointer : int ** - + - + some_int_reference : int & diff --git a/docs/test_cases/t00017_class_mermaid.svg b/docs/test_cases/t00017_class_mermaid.svg new file mode 100644 index 00000000..2034f400 --- /dev/null +++ b/docs/test_cases/t00017_class_mermaid.svg @@ -0,0 +1,445 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + -a + +
+
+
+
+ + + +
+ + -b + +
+
+
+
+ + + +
+ + -c + +
+
+
+
+ + + +
+ + -d + +
+
+
+
+ + + +
+ + -e + +
+
+
+
+ + + +
+ + -f + +
+
+
+
+ + + +
+ + -g + +
+
+
+
+ + + +
+ + -h + +
+
+
+
+ + + +
+ + -i + +
+
+
+
+ + + +
+ + -j + +
+
+
+
+ + + +
+ + -k + +
+
+
+
+
+ + + + + + + + +
+ +
+
+ +
+ A +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ B +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ C +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ D +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ E +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ F +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ G +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ H +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ I +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ J +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ K +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ R +
+
+ +
+ -some_int : int +
+
+ +
+ -some_int_pointer : int +
+
+ +
+ -some_int_pointer_pointer : int * +
+
+ +
+ -some_int_reference : int & +
+
+ +
+ -R(int & some_int, C & cc, const E & ee, F && ff, I *& ii) : void +
+
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t00018.md b/docs/test_cases/t00018.md index b87d9cdf..9869b572 100644 --- a/docs/test_cases/t00018.md +++ b/docs/test_cases/t00018.md @@ -133,8 +133,10 @@ void widget::draw(const clanguml::t00018::widget &w) } // namespace clanguml ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t00018_class](./t00018_class.svg "Pimpl pattern") +## Generated Mermaid diagrams +![t00018_class](./t00018_class_mermaid.svg "Pimpl pattern") ## Generated JSON models ```json { @@ -439,7 +441,7 @@ void widget::draw(const clanguml::t00018::widget &w) "parameters": [ { "name": "", - "type": "clanguml::t00018::widget &&" + "type": "widget &&" } ], "source_location": { @@ -469,7 +471,7 @@ void widget::draw(const clanguml::t00018::widget &w) "parameters": [ { "name": "", - "type": "const clanguml::t00018::widget &" + "type": "const widget &" } ], "source_location": { @@ -499,7 +501,7 @@ void widget::draw(const clanguml::t00018::widget &w) "parameters": [ { "name": "", - "type": "clanguml::t00018::widget &&" + "type": "widget &&" } ], "source_location": { @@ -508,7 +510,7 @@ void widget::draw(const clanguml::t00018::widget &w) "line": 30, "translation_unit": "../../tests/t00018/t00018.cc" }, - "type": "clanguml::t00018::widget &" + "type": "widget &" }, { "access": "public", @@ -529,7 +531,7 @@ void widget::draw(const clanguml::t00018::widget &w) "parameters": [ { "name": "", - "type": "const clanguml::t00018::widget &" + "type": "const widget &" } ], "source_location": { @@ -538,7 +540,7 @@ void widget::draw(const clanguml::t00018::widget &w) "line": 31, "translation_unit": "../../tests/t00018/t00018.cc" }, - "type": "clanguml::t00018::widget &" + "type": "widget &" } ], "name": "widget", @@ -554,8 +556,8 @@ void widget::draw(const clanguml::t00018::widget &w) } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t00018_class", diff --git a/docs/test_cases/t00018_class.svg b/docs/test_cases/t00018_class.svg index 6585b859..f615c215 100644 --- a/docs/test_cases/t00018_class.svg +++ b/docs/test_cases/t00018_class.svg @@ -1,6 +1,6 @@ - + @@ -9,121 +9,121 @@ - - + + impl::widget - + - + widget(int n) : void - + - + draw(const widget & w) const : void - + - + draw(const widget & w) : void - + - + n : int - - + + widget - + - + widget(int) : void - + - + widget(widget &&) : void - + - + widget(const widget &) = deleted : void - + - + ~widget() : void - + - + operator=(widget &&) : widget & - + - + operator=(const widget &) = deleted : widget & - + - + draw() const : void - + - + draw() : void - + - + shown() const : bool - + - + pImpl : std::unique_ptr<impl::widget> diff --git a/docs/test_cases/t00018_class_mermaid.svg b/docs/test_cases/t00018_class_mermaid.svg new file mode 100644 index 00000000..4bddd61e --- /dev/null +++ b/docs/test_cases/t00018_class_mermaid.svg @@ -0,0 +1,190 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+
+ + + +
+ + -pImpl + +
+
+
+
+
+ + + + + + + + +
+ +
+
+ +
+ impl::widget +
+
+ +
+ -n : int +
+
+ +
+ +widget(int n) : void +
+
+ +
+ +draw(const widget & w) : void +
+
+ +
+ +draw(const widget & w) : void +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ widget +
+
+ +
+ -pImpl : std::unique_ptr<impl::widget> +
+
+ +
+ +widget(int) : void +
+
+ +
+ +widget(widget &&) : void +
+
+ +
+ +widget(const widget &) : void +
+
+ +
+ +~widget() : void +
+
+ +
+ +operator=(widget &&) : widget & +
+
+ +
+ +operator=(const widget &) : widget & +
+
+ +
+ +draw() : void +
+
+ +
+ +draw() : void +
+
+ +
+ +shown() : bool +
+
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t00019.md b/docs/test_cases/t00019.md index ec164484..d77281ad 100644 --- a/docs/test_cases/t00019.md +++ b/docs/test_cases/t00019.md @@ -151,8 +151,10 @@ class Base { } ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t00019_class](./t00019_class.svg "Layercake pattern") +## Generated Mermaid diagrams +![t00019_class](./t00019_class_mermaid.svg "Layercake pattern") ## Generated JSON models ```json { @@ -672,8 +674,8 @@ class Base { "namespace": "clanguml::t00019", "source_location": { "column": 11, - "file": "../../../../../../usr/include/c++/12/bits/unique_ptr.h", - "line": 269, + "file": "../../../../../../usr/include/c++/11/bits/unique_ptr.h", + "line": 242, "translation_unit": "../../tests/t00019/t00019.cc" }, "template_parameters": [ @@ -737,8 +739,8 @@ class Base { } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t00019_class", diff --git a/docs/test_cases/t00019_class.svg b/docs/test_cases/t00019_class.svg index 70fbc166..eb2a6169 100644 --- a/docs/test_cases/t00019_class.svg +++ b/docs/test_cases/t00019_class.svg @@ -1,6 +1,6 @@ - + @@ -9,45 +9,45 @@ - - + + Base - + - + Base() = default : void - + - + ~Base() constexpr = default : void - + - + m1() : int - + - + m2() : std::string - - + + Layer1 @@ -55,23 +55,23 @@ LowerLayer - + - + m1() : int - + - + m2() : std::string - - + + Layer2 @@ -79,16 +79,16 @@ LowerLayer - + - + all_calls_count() const : int - - + + Layer3 @@ -96,51 +96,51 @@ LowerLayer - + - + m1() : int - + - + m1_calls() const : int - + - + m2() : std::string - + - + m2_calls() const : int - + - + m_m1_calls : int - + - + m_m2_calls : int - - + + Layer3 @@ -149,8 +149,8 @@ - - + + Layer2 @@ -159,8 +159,8 @@ - - + + Layer1 @@ -169,19 +169,19 @@ - - + + A - + - + layers : std::unique_ptr<Layer1<Layer2<Layer3<Base>>>> diff --git a/docs/test_cases/t00019_class_mermaid.svg b/docs/test_cases/t00019_class_mermaid.svg new file mode 100644 index 00000000..eb369a12 --- /dev/null +++ b/docs/test_cases/t00019_class_mermaid.svg @@ -0,0 +1,354 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ + +layers + +
+
+
+
+
+ + + + + + + + +
+ +
+
+ +
+ Base +
+
+ +
+ -Base() : void +
+
+ +
+ -~Base() : void +
+
+ +
+ -m1() : int +
+
+ +
+ -m2() : std::string +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ Layer1<LowerLayer> +
+
+ +
+ -m1() : int +
+
+ +
+ -m2() : std::string +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ Layer2<LowerLayer> +
+
+ +
+ -all_calls_count() : int +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ Layer3<LowerLayer> +
+
+ +
+ -m_m1_calls : int +
+
+ +
+ -m_m2_calls : int +
+
+ +
+ -m1() : int +
+
+ +
+ -m1_calls() : int +
+
+ +
+ -m2() : std::string +
+
+ +
+ -m2_calls() : int +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ Layer3<Base> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ Layer2<Layer3<Base>> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ Layer1<Layer2<Layer3<Base>>> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A +
+
+ +
+ +layers : std::unique_ptr<Layer1<Layer2<Layer3<Base>>>> +
+
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t00020.md b/docs/test_cases/t00020.md index b4d9a8e9..0a0a9c16 100644 --- a/docs/test_cases/t00020.md +++ b/docs/test_cases/t00020.md @@ -96,8 +96,10 @@ public: } // namespace clanguml ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t00020_class](./t00020_class.svg "Abstract factory pattern") +## Generated Mermaid diagrams +![t00020_class](./t00020_class_mermaid.svg "Abstract factory pattern") ## Generated JSON models ```json { @@ -734,8 +736,8 @@ public: } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t00020_class", diff --git a/docs/test_cases/t00020_class.svg b/docs/test_cases/t00020_class.svg index 089cdf46..813e86be 100644 --- a/docs/test_cases/t00020_class.svg +++ b/docs/test_cases/t00020_class.svg @@ -1,6 +1,6 @@ - + @@ -9,175 +9,175 @@ - - + + ProductA - + - + ~ProductA() constexpr = default : void - + - + sell(int price) const = 0 : bool - - + + ProductA1 - + - + sell(int price) const : bool - - + + ProductA2 - + - + sell(int price) const : bool - - + + ProductB - + - + ~ProductB() constexpr = default : void - + - + buy(int price) const = 0 : bool - - + + ProductB1 - + - + buy(int price) const : bool - - + + ProductB2 - + - + buy(int price) const : bool - - + + AbstractFactory - + - + make_a() const = 0 : std::unique_ptr<ProductA> - + - + make_b() const = 0 : std::unique_ptr<ProductB> - - + + Factory1 - + - + make_a() const : std::unique_ptr<ProductA> - + - + make_b() const : std::unique_ptr<ProductB> - - + + Factory2 - + - + make_a() const : std::unique_ptr<ProductA> - + - + make_b() const : std::unique_ptr<ProductB> diff --git a/docs/test_cases/t00020_class_mermaid.svg b/docs/test_cases/t00020_class_mermaid.svg new file mode 100644 index 00000000..b86b1e86 --- /dev/null +++ b/docs/test_cases/t00020_class_mermaid.svg @@ -0,0 +1,421 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+
+ + + + + + + + +
+ «abstract» +
+
+ +
+ ProductA +
+
+ +
+ +~ProductA() : void +
+
+ +
+ +sell(int price) : bool +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ ProductA1 +
+
+ +
+ +sell(int price) : bool +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ ProductA2 +
+
+ +
+ +sell(int price) : bool +
+
+
+
+
+ + + + + + + +
+ «abstract» +
+
+ +
+ ProductB +
+
+ +
+ +~ProductB() : void +
+
+ +
+ +buy(int price) : bool +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ ProductB1 +
+
+ +
+ +buy(int price) : bool +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ ProductB2 +
+
+ +
+ +buy(int price) : bool +
+
+
+
+
+ + + + + + + +
+ «abstract» +
+
+ +
+ AbstractFactory +
+
+ +
+ +make_a() : std::unique_ptr<ProductA> +
+
+ +
+ +make_b() : std::unique_ptr<ProductB> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ Factory1 +
+
+ +
+ +make_a() : std::unique_ptr<ProductA> +
+
+ +
+ +make_b() : std::unique_ptr<ProductB> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ Factory2 +
+
+ +
+ +make_a() : std::unique_ptr<ProductA> +
+
+ +
+ +make_b() : std::unique_ptr<ProductB> +
+
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t00021.md b/docs/test_cases/t00021.md index 7a70f81b..8a2f2fb8 100644 --- a/docs/test_cases/t00021.md +++ b/docs/test_cases/t00021.md @@ -70,8 +70,10 @@ public: } // namespace clanguml ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t00021_class](./t00021_class.svg "Visitor pattern") +## Generated Mermaid diagrams +![t00021_class](./t00021_class_mermaid.svg "Visitor pattern") ## Generated JSON models ```json { @@ -132,7 +134,7 @@ public: "parameters": [ { "name": "item", - "type": "const clanguml::t00021::A &" + "type": "const A &" } ], "source_location": { @@ -162,7 +164,7 @@ public: "parameters": [ { "name": "item", - "type": "const clanguml::t00021::B &" + "type": "const B &" } ], "source_location": { @@ -222,7 +224,7 @@ public: "parameters": [ { "name": "item", - "type": "const clanguml::t00021::A &" + "type": "const A &" } ], "source_location": { @@ -252,7 +254,7 @@ public: "parameters": [ { "name": "item", - "type": "const clanguml::t00021::B &" + "type": "const B &" } ], "source_location": { @@ -312,7 +314,7 @@ public: "parameters": [ { "name": "item", - "type": "const clanguml::t00021::A &" + "type": "const A &" } ], "source_location": { @@ -342,7 +344,7 @@ public: "parameters": [ { "name": "item", - "type": "const clanguml::t00021::B &" + "type": "const B &" } ], "source_location": { @@ -402,7 +404,7 @@ public: "parameters": [ { "name": "item", - "type": "const clanguml::t00021::A &" + "type": "const A &" } ], "source_location": { @@ -432,7 +434,7 @@ public: "parameters": [ { "name": "item", - "type": "const clanguml::t00021::B &" + "type": "const B &" } ], "source_location": { @@ -510,7 +512,7 @@ public: "parameters": [ { "name": "visitor", - "type": "const clanguml::t00021::Visitor &" + "type": "const Visitor &" } ], "source_location": { @@ -570,7 +572,7 @@ public: "parameters": [ { "name": "visitor", - "type": "const clanguml::t00021::Visitor &" + "type": "const Visitor &" } ], "source_location": { @@ -630,7 +632,7 @@ public: "parameters": [ { "name": "visitor", - "type": "const clanguml::t00021::Visitor &" + "type": "const Visitor &" } ], "source_location": { @@ -655,8 +657,8 @@ public: } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t00021_class", diff --git a/docs/test_cases/t00021_class.svg b/docs/test_cases/t00021_class.svg index 17428c24..94d0915e 100644 --- a/docs/test_cases/t00021_class.svg +++ b/docs/test_cases/t00021_class.svg @@ -1,6 +1,6 @@ - + @@ -9,152 +9,152 @@ - - + + Visitor - + - + ~Visitor() constexpr = default : void - + - + visit_A(const A & item) const = 0 : void - + - + visit_B(const B & item) const = 0 : void - - + + Visitor1 - + - + visit_A(const A & item) const : void - + - + visit_B(const B & item) const : void - - + + Visitor2 - + - + visit_A(const A & item) const : void - + - + visit_B(const B & item) const : void - - + + Visitor3 - + - + visit_A(const A & item) const : void - + - + visit_B(const B & item) const : void - - + + Item - + - + ~Item() constexpr = default : void - + - + accept(const Visitor & visitor) const = 0 : void - - + + A - + - + accept(const Visitor & visitor) const : void - - + + B - + - + accept(const Visitor & visitor) const : void diff --git a/docs/test_cases/t00021_class_mermaid.svg b/docs/test_cases/t00021_class_mermaid.svg new file mode 100644 index 00000000..34d2e02e --- /dev/null +++ b/docs/test_cases/t00021_class_mermaid.svg @@ -0,0 +1,418 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+
+ + + + + + + + +
+ «abstract» +
+
+ +
+ Visitor +
+
+ +
+ +~Visitor() : void +
+
+ +
+ +visit_A(const A & item) : void +
+
+ +
+ +visit_B(const B & item) : void +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ Visitor1 +
+
+ +
+ +visit_A(const A & item) : void +
+
+ +
+ +visit_B(const B & item) : void +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ Visitor2 +
+
+ +
+ +visit_A(const A & item) : void +
+
+ +
+ +visit_B(const B & item) : void +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ Visitor3 +
+
+ +
+ +visit_A(const A & item) : void +
+
+ +
+ +visit_B(const B & item) : void +
+
+
+
+
+ + + + + + + +
+ «abstract» +
+
+ +
+ Item +
+
+ +
+ +~Item() : void +
+
+ +
+ +accept(const Visitor & visitor) : void +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A +
+
+ +
+ +accept(const Visitor & visitor) : void +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ B +
+
+ +
+ +accept(const Visitor & visitor) : void +
+
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t00022.md b/docs/test_cases/t00022.md index 253d4b4b..fc763b8e 100644 --- a/docs/test_cases/t00022.md +++ b/docs/test_cases/t00022.md @@ -51,8 +51,10 @@ protected: } // namespace clanguml ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t00022_class](./t00022_class.svg "Template method pattern") +## Generated Mermaid diagrams +![t00022_class](./t00022_class_mermaid.svg "Template method pattern") ## Generated JSON models ```json { @@ -318,8 +320,8 @@ protected: } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t00022_class", diff --git a/docs/test_cases/t00022_class.svg b/docs/test_cases/t00022_class.svg index c304fffb..e7fda857 100644 --- a/docs/test_cases/t00022_class.svg +++ b/docs/test_cases/t00022_class.svg @@ -1,6 +1,6 @@ - + @@ -9,76 +9,76 @@ - - + + A - + - + method1() = 0 : void - + - + method2() = 0 : void - + - + template_method() : void - - + + A1 - + - + method1() : void - + - + method2() : void - - + + A2 - + - + method1() : void - + - + method2() : void diff --git a/docs/test_cases/t00022_class_mermaid.svg b/docs/test_cases/t00022_class_mermaid.svg new file mode 100644 index 00000000..c275fa85 --- /dev/null +++ b/docs/test_cases/t00022_class_mermaid.svg @@ -0,0 +1,172 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+
+ + + + + + + + +
+ «abstract» +
+
+ +
+ A +
+
+ +
+ #method1() : void +
+
+ +
+ #method2() : void +
+
+ +
+ +template_method() : void +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A1 +
+
+ +
+ #method1() : void +
+
+ +
+ #method2() : void +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A2 +
+
+ +
+ #method1() : void +
+
+ +
+ #method2() : void +
+
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t00023.md b/docs/test_cases/t00023.md index e7b7d97d..28f32d60 100644 --- a/docs/test_cases/t00023.md +++ b/docs/test_cases/t00023.md @@ -60,8 +60,10 @@ private: } // namespace clanguml ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t00023_class](./t00023_class.svg "Strategy pattern") +## Generated Mermaid diagrams +![t00023_class](./t00023_class_mermaid.svg "Strategy pattern") ## Generated JSON models ```json { @@ -398,8 +400,8 @@ private: } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t00023_class", diff --git a/docs/test_cases/t00023_class.svg b/docs/test_cases/t00023_class.svg index 1cbb3f5a..673fc00d 100644 --- a/docs/test_cases/t00023_class.svg +++ b/docs/test_cases/t00023_class.svg @@ -1,6 +1,6 @@ - + @@ -9,102 +9,102 @@ - - + + Strategy - + - + ~Strategy() constexpr = default : void - + - + algorithm() = 0 : void - - + + StrategyA - + - + algorithm() : void - - + + StrategyB - + - + algorithm() : void - - + + StrategyC - + - + algorithm() : void - - + + Context - + - + Context(std::unique_ptr<Strategy> strategy) : void - + - + apply() : void - + - + m_strategy : std::unique_ptr<Strategy> diff --git a/docs/test_cases/t00023_class_mermaid.svg b/docs/test_cases/t00023_class_mermaid.svg new file mode 100644 index 00000000..2d2898c6 --- /dev/null +++ b/docs/test_cases/t00023_class_mermaid.svg @@ -0,0 +1,237 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ + -m_strategy + +
+
+
+
+
+ + + + + + + + +
+ «abstract» +
+
+ +
+ Strategy +
+
+ +
+ +~Strategy() : void +
+
+ +
+ +algorithm() : void +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ StrategyA +
+
+ +
+ +algorithm() : void +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ StrategyB +
+
+ +
+ +algorithm() : void +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ StrategyC +
+
+ +
+ +algorithm() : void +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ Context +
+
+ +
+ -m_strategy : std::unique_ptr<Strategy> +
+
+ +
+ +Context(std::unique_ptr strategy) : void +
+
+ +
+ +apply() : void +
+
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t00024.md b/docs/test_cases/t00024.md index 51aa05e7..15793475 100644 --- a/docs/test_cases/t00024.md +++ b/docs/test_cases/t00024.md @@ -59,8 +59,10 @@ private: } // namespace clanguml ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t00024_class](./t00024_class.svg "Proxy pattern") +## Generated Mermaid diagrams +![t00024_class](./t00024_class_mermaid.svg "Proxy pattern") ## Generated JSON models ```json { @@ -449,8 +451,8 @@ private: } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t00024_class", diff --git a/docs/test_cases/t00024_class.svg b/docs/test_cases/t00024_class.svg index 35606c41..e4a72557 100644 --- a/docs/test_cases/t00024_class.svg +++ b/docs/test_cases/t00024_class.svg @@ -1,6 +1,6 @@ - + @@ -9,115 +9,115 @@ - - + + Target - + - + ~Target() = 0 : void - + - + m1() = 0 : void - + - + m2() = 0 : void - - + + Target1 - + - + m1() : void - + - + m2() : void - - + + Target2 - + - + m1() : void - + - + m2() : void - - + + Proxy - + - + Proxy(std::shared_ptr<Target> target) : void - + - + m1() : void - + - + m2() : void - + - + m_target : std::shared_ptr<Target> diff --git a/docs/test_cases/t00024_class_mermaid.svg b/docs/test_cases/t00024_class_mermaid.svg new file mode 100644 index 00000000..118279bb --- /dev/null +++ b/docs/test_cases/t00024_class_mermaid.svg @@ -0,0 +1,233 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ + -m_target + +
+
+
+
+ + + +
+ +
+
+
+
+
+ + + + + + + + +
+ «abstract» +
+
+ +
+ Target +
+
+ +
+ +~Target() : void +
+
+ +
+ +m1() : void +
+
+ +
+ +m2() : void +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ Target1 +
+
+ +
+ +m1() : void +
+
+ +
+ +m2() : void +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ Target2 +
+
+ +
+ +m1() : void +
+
+ +
+ +m2() : void +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ Proxy +
+
+ +
+ -m_target : std::shared_ptr<Target> +
+
+ +
+ +Proxy(std::shared_ptr target) : void +
+
+ +
+ +m1() : void +
+
+ +
+ +m2() : void +
+
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t00025.md b/docs/test_cases/t00025.md index e9b6dcf2..ae1b5f29 100644 --- a/docs/test_cases/t00025.md +++ b/docs/test_cases/t00025.md @@ -57,8 +57,10 @@ public: } // namespace clanguml ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t00025_class](./t00025_class.svg "Template proxy pattern") +## Generated Mermaid diagrams +![t00025_class](./t00025_class_mermaid.svg "Template proxy pattern") ## Generated JSON models ```json { @@ -411,7 +413,7 @@ public: "line": 33, "translation_unit": "../../tests/t00025/t00025.cc" }, - "type": "Proxy" + "type": "Proxy" }, { "access": "public", @@ -423,7 +425,7 @@ public: "line": 34, "translation_unit": "../../tests/t00025/t00025.cc" }, - "type": "Proxy" + "type": "Proxy" } ], "methods": [], @@ -440,8 +442,8 @@ public: } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t00025_class", diff --git a/docs/test_cases/t00025_class.svg b/docs/test_cases/t00025_class.svg index 0f0d17a5..af0adb76 100644 --- a/docs/test_cases/t00025_class.svg +++ b/docs/test_cases/t00025_class.svg @@ -1,6 +1,6 @@ - + @@ -9,52 +9,52 @@ - - + + Target1 - + - + m1() : void - + - + m2() : void - - + + Target2 - + - + m1() : void - + - + m2() : void - - + + Proxy @@ -62,38 +62,38 @@ T - + - + Proxy(std::shared_ptr<T> target) : void - + - + m1() : void - + - + m2() : void - + - + m_target : std::shared_ptr<T> - - + + Proxy @@ -102,8 +102,8 @@ - - + + Proxy @@ -112,26 +112,26 @@ - - + + ProxyHolder - + - + proxy1 : Proxy<Target1> - + - + proxy2 : Proxy<Target2> diff --git a/docs/test_cases/t00025_class_mermaid.svg b/docs/test_cases/t00025_class_mermaid.svg new file mode 100644 index 00000000..68e5828d --- /dev/null +++ b/docs/test_cases/t00025_class_mermaid.svg @@ -0,0 +1,288 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ + +proxy1 + +
+
+
+
+ + + +
+ + +proxy2 + +
+
+
+
+
+ + + + + + + + +
+ +
+
+ +
+ Target1 +
+
+ +
+ +m1() : void +
+
+ +
+ +m2() : void +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ Target2 +
+
+ +
+ +m1() : void +
+
+ +
+ +m2() : void +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ Proxy<T> +
+
+ +
+ -m_target : std::shared_ptr<T> +
+
+ +
+ +Proxy(std::shared_ptr target) : void +
+
+ +
+ +m1() : void +
+
+ +
+ +m2() : void +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ Proxy<Target1> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ Proxy<Target2> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ ProxyHolder +
+
+ +
+ +proxy1 : Proxy<Target1> +
+
+ +
+ +proxy2 : Proxy<Target2> +
+
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t00026.md b/docs/test_cases/t00026.md index c26438e5..33f19e1a 100644 --- a/docs/test_cases/t00026.md +++ b/docs/test_cases/t00026.md @@ -78,8 +78,10 @@ struct StringMemento { } // namespace clanguml ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t00026_class](./t00026_class.svg "Template memento pattern") +## Generated Mermaid diagrams +![t00026_class](./t00026_class_mermaid.svg "Template memento pattern") ## Generated JSON models ```json { @@ -580,8 +582,8 @@ struct StringMemento { } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t00026_class", diff --git a/docs/test_cases/t00026_class.svg b/docs/test_cases/t00026_class.svg index 8abd603d..f7c9cfb5 100644 --- a/docs/test_cases/t00026_class.svg +++ b/docs/test_cases/t00026_class.svg @@ -1,6 +1,6 @@ - + @@ -9,8 +9,8 @@ - - + + Memento @@ -18,31 +18,31 @@ T - + - + Memento(T && v) : void - + - + value() const : T - + - + m_value : T - - + + Originator @@ -50,52 +50,52 @@ T - + - + Originator(T && v) : void - + - + load(const Memento<T> & m) : void - + - + memoize_value() const : Memento<T> - + - + print() const : void - + - + set(T && v) : void - + - + m_value : T - - + + Caretaker @@ -103,30 +103,30 @@ T - + - + set_state(const std::string & s, Memento<T> && m) : void - + - + state(const std::string & n) : Memento<T> & - + - + m_mementos : std::unordered_map<std::string,Memento<T>> - - + + Caretaker @@ -135,8 +135,8 @@ - - + + Originator @@ -145,26 +145,26 @@ - - + + StringMemento - + - + caretaker : Caretaker<std::string> - + - + originator : Originator<std::string> diff --git a/docs/test_cases/t00026_class_mermaid.svg b/docs/test_cases/t00026_class_mermaid.svg new file mode 100644 index 00000000..90054c70 --- /dev/null +++ b/docs/test_cases/t00026_class_mermaid.svg @@ -0,0 +1,310 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+
+ + + +
+ + -m_mementos + +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ + +caretaker + +
+
+
+
+ + + +
+ + +originator + +
+
+
+
+
+ + + + + + + + +
+ +
+
+ +
+ Memento<T> +
+
+ +
+ -m_value : T +
+
+ +
+ +Memento(T && v) : void +
+
+ +
+ +value() : T +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ Originator<T> +
+
+ +
+ -m_value : T +
+
+ +
+ +Originator(T && v) : void +
+
+ +
+ +load(const Memento & m) : void +
+
+ +
+ +memoize_value() : Memento<T> +
+
+ +
+ +print() : void +
+
+ +
+ +set(T && v) : void +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ Caretaker<T> +
+
+ +
+ -m_mementos : std::unordered_map<std::string,Memento<T>> +
+
+ +
+ +set_state(const std::string & s, Memento && m) : void +
+
+ +
+ +state(const std::string & n) : Memento<T> & +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ Caretaker<std::string> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ Originator<std::string> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ StringMemento +
+
+ +
+ +caretaker : Caretaker<std::string> +
+
+ +
+ +originator : Originator<std::string> +
+
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t00027.md b/docs/test_cases/t00027.md index 5d72bec2..f7ff0cff 100644 --- a/docs/test_cases/t00027.md +++ b/docs/test_cases/t00027.md @@ -75,8 +75,10 @@ struct Window { } // namespace clanguml ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t00027_class](./t00027_class.svg "Template decorator pattern") +## Generated Mermaid diagrams +![t00027_class](./t00027_class_mermaid.svg "Template decorator pattern") ## Generated JSON models ```json { @@ -708,8 +710,8 @@ struct Window { } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t00027_class", diff --git a/docs/test_cases/t00027_class.svg b/docs/test_cases/t00027_class.svg index f47e5821..3edd483c 100644 --- a/docs/test_cases/t00027_class.svg +++ b/docs/test_cases/t00027_class.svg @@ -1,6 +1,6 @@ - + @@ -9,39 +9,39 @@ - - + + Shape - + - + ~Shape() constexpr = default : void - + - + display() = 0 : void - - + + Line - - + + Line @@ -49,24 +49,24 @@ T<>... - + - + display() : void - - + + Text - - + + Text @@ -74,31 +74,31 @@ T<>... - + - + display() : void - - + + ShapeDecorator - + - + display() = 0 : void - - + + Color @@ -106,16 +106,16 @@ T - + - + display() : void - - + + Weight @@ -123,16 +123,16 @@ T - + - + display() : void - - + + Line @@ -141,8 +141,8 @@ - - + + Line @@ -151,8 +151,8 @@ - - + + Text @@ -161,8 +161,8 @@ - - + + Text @@ -171,40 +171,40 @@ - - + + Window - + - + border : Line<Color,Weight> - + - + description : Text<Color> - + - + divider : Line<Color> - + - + title : Text<Color,Weight> diff --git a/docs/test_cases/t00027_class_mermaid.svg b/docs/test_cases/t00027_class_mermaid.svg new file mode 100644 index 00000000..dc7a0549 --- /dev/null +++ b/docs/test_cases/t00027_class_mermaid.svg @@ -0,0 +1,490 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ + +border + +
+
+
+
+ + + +
+ + +divider + +
+
+
+
+ + + +
+ + +title + +
+
+
+
+ + + +
+ + +description + +
+
+
+
+
+ + + + + + + + +
+ «abstract» +
+
+ +
+ Shape +
+
+ +
+ +~Shape() : void +
+
+ +
+ +display() : void +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ Line +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ Line<T<>...> +
+
+ +
+ +display() : void +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ Text +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ Text<T<>...> +
+
+ +
+ +display() : void +
+
+
+
+
+ + + + + + + +
+ «abstract» +
+
+ +
+ ShapeDecorator +
+
+ +
+ +display() : void +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ Color<T> +
+
+ +
+ +display() : void +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ Weight<T> +
+
+ +
+ +display() : void +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ Line<Color,Weight> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ Line<Color> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ Text<Color,Weight> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ Text<Color> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ Window +
+
+ +
+ +border : Line<Color,Weight> +
+
+ +
+ +description : Text<Color> +
+
+ +
+ +divider : Line<Color> +
+
+ +
+ +title : Text<Color,Weight> +
+
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t00028.md b/docs/test_cases/t00028.md index e5485b47..79959c91 100644 --- a/docs/test_cases/t00028.md +++ b/docs/test_cases/t00028.md @@ -84,8 +84,10 @@ class R { } // namespace clanguml ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t00028_class](./t00028_class.svg "PlantUML note decorator test case") +## Generated Mermaid diagrams +![t00028_class](./t00028_class_mermaid.svg "PlantUML note decorator test case") ## Generated JSON models ```json { @@ -347,7 +349,7 @@ class R { "line": 43, "translation_unit": "../../tests/t00028/t00028.cc" }, - "type": "clanguml::t00028::A" + "type": "A" }, { "access": "private", @@ -363,7 +365,7 @@ class R { "line": 46, "translation_unit": "../../tests/t00028/t00028.cc" }, - "type": "clanguml::t00028::B *" + "type": "B *" }, { "access": "private", @@ -375,7 +377,7 @@ class R { "line": 48, "translation_unit": "../../tests/t00028/t00028.cc" }, - "type": "clanguml::t00028::C &" + "type": "C &" }, { "access": "private", @@ -411,7 +413,7 @@ class R { "line": 54, "translation_unit": "../../tests/t00028/t00028.cc" }, - "type": "clanguml::t00028::G **" + "type": "G **" } ], "methods": [ @@ -434,7 +436,7 @@ class R { "parameters": [ { "name": "c", - "type": "clanguml::t00028::C &" + "type": "C &" } ], "source_location": { @@ -459,8 +461,8 @@ class R { } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t00028_class", diff --git a/docs/test_cases/t00028_class.svg b/docs/test_cases/t00028_class.svg index 2516af12..d276803a 100644 --- a/docs/test_cases/t00028_class.svg +++ b/docs/test_cases/t00028_class.svg @@ -1,6 +1,6 @@ - + @@ -9,54 +9,54 @@ - - + + A - + A class note. - - + + B - + B class note. - - + + C - + C class note. - - + + D - + D class note. - - + + E @@ -65,26 +65,26 @@ - + - + param : T - + E template class note. - - + + G - - + + F @@ -94,11 +94,11 @@ three - + F enum note. - - + + E @@ -107,70 +107,70 @@ - - + + R - + - + R(C & c) : void - + - + aaa : A - + - + bbb : B * - + - + ccc : C & - + - + ddd : std::vector<std::shared_ptr<D>> - + - + eee : E<int> - + - + ggg : G ** - + R class note. - + R contains an instance of A. - + Reference to C. diff --git a/docs/test_cases/t00028_class_mermaid.svg b/docs/test_cases/t00028_class_mermaid.svg new file mode 100644 index 00000000..d5b762aa --- /dev/null +++ b/docs/test_cases/t00028_class_mermaid.svg @@ -0,0 +1,536 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+
+ + + +
+ + -aaa + +
+
+
+
+ + + +
+ + -bbb + +
+
+
+
+ + + +
+ + -ccc + +
+
+
+
+ + + +
+ + -ddd + +
+
+
+
+ + + +
+ + -eee + +
+
+
+
+ + + +
+ + -ggg + +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+
+ + + + + + + + +
+ +
+
+ +
+ A +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ B +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ C +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ D +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ E<T> +
+
+ +
+ -param : T +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ G +
+
+
+
+
+ + + + + + + +
+ «Enumeration» +
+
+ +
+ F +
+
+ +
+ one +
+
+ +
+ two +
+
+ +
+ three +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ E<int> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ R +
+
+ +
+ -aaa : A +
+
+ +
+ -bbb : B +
+
+ +
+ -ccc : C & +
+
+ +
+ -ddd : std::vector<std::shared_ptr<D>> +
+
+ +
+ -eee : E<int> +
+
+ +
+ -ggg : G * +
+
+ +
+ -R(C & c) : void +
+
+
+
+
+ + + + + +
+ A class note. +
+
+
+
+ + + + + +
+ B class note. +
+
+
+
+ + + + + +
+ C class note. +
+
+
+
+ + + + + +
+ D
class
note.
+
+
+
+
+ + + + + +
+ E template class note. +
+
+
+
+ + + + + +
+ F enum note. +
+
+
+
+ + + + + +
+ R class note. +
+
+
+
+ + + + + +
+ R contains an instance of A. +
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t00029.md b/docs/test_cases/t00029.md index 880fa983..f65247bf 100644 --- a/docs/test_cases/t00029.md +++ b/docs/test_cases/t00029.md @@ -67,8 +67,10 @@ struct R { } // namespace clanguml ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t00029_class](./t00029_class.svg "PlantUML skip decorator test case") +## Generated Mermaid diagrams +![t00029_class](./t00029_class_mermaid.svg "PlantUML skip decorator test case") ## Generated JSON models ```json { @@ -265,7 +267,7 @@ struct R { "line": 35, "translation_unit": "../../tests/t00029/t00029.cc" }, - "type": "clanguml::t00029::G1" + "type": "G1" }, { "access": "public", @@ -281,7 +283,7 @@ struct R { "line": 41, "translation_unit": "../../tests/t00029/t00029.cc" }, - "type": "clanguml::t00029::G3 &" + "type": "G3 &" }, { "access": "public", @@ -310,8 +312,8 @@ struct R { } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t00029_class", diff --git a/docs/test_cases/t00029_class.svg b/docs/test_cases/t00029_class.svg index 2b962eaf..2ab0a3da 100644 --- a/docs/test_cases/t00029_class.svg +++ b/docs/test_cases/t00029_class.svg @@ -1,6 +1,6 @@ - + @@ -9,16 +9,16 @@ - - + + A - - + + C @@ -27,15 +27,15 @@ - + - + param : T - - + + E @@ -45,65 +45,65 @@ three - - + + G1 - - + + G2 - - + + G3 - - + + G4 - - + + R - + - + g1 : G1 - + - + g3 : G3 & - + - + g4 : std::shared_ptr<G4> diff --git a/docs/test_cases/t00029_class_mermaid.svg b/docs/test_cases/t00029_class_mermaid.svg new file mode 100644 index 00000000..27cfdc73 --- /dev/null +++ b/docs/test_cases/t00029_class_mermaid.svg @@ -0,0 +1,271 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +g1 + +
+
+
+
+ + + +
+ + +g4 + +
+
+
+
+
+ + + + + + + + +
+ +
+
+ +
+ A +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ C<T> +
+
+ +
+ -param : T +
+
+
+
+
+ + + + + + + +
+ «Enumeration» +
+
+ +
+ E +
+
+ +
+ one +
+
+ +
+ two +
+
+ +
+ three +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ G1 +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ G2 +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ G3 +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ G4 +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ R +
+
+ +
+ +g1 : G1 +
+
+ +
+ +g3 : G3 & +
+
+ +
+ +g4 : std::shared_ptr<G4> +
+
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t00030.md b/docs/test_cases/t00030.md index 58e57173..9978f9ca 100644 --- a/docs/test_cases/t00030.md +++ b/docs/test_cases/t00030.md @@ -55,8 +55,10 @@ struct R { } // namespace clanguml ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t00030_class](./t00030_class.svg "PlantUML relationship decorators test case") +## Generated Mermaid diagrams +![t00030_class](./t00030_class_mermaid.svg "PlantUML relationship decorators test case") ## Generated JSON models ```json { @@ -196,7 +198,7 @@ struct R { "line": 19, "translation_unit": "../../tests/t00030/t00030.cc" }, - "type": "clanguml::t00030::A" + "type": "A" }, { "access": "public", @@ -244,7 +246,7 @@ struct R { "line": 28, "translation_unit": "../../tests/t00030/t00030.cc" }, - "type": "clanguml::t00030::D" + "type": "D" }, { "access": "public", @@ -260,7 +262,7 @@ struct R { "line": 31, "translation_unit": "../../tests/t00030/t00030.cc" }, - "type": "clanguml::t00030::E *" + "type": "E *" } ], "methods": [], @@ -277,8 +279,8 @@ struct R { } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t00030_class", diff --git a/docs/test_cases/t00030_class.svg b/docs/test_cases/t00030_class.svg index bb2a5012..c453f91a 100644 --- a/docs/test_cases/t00030_class.svg +++ b/docs/test_cases/t00030_class.svg @@ -1,6 +1,6 @@ - + @@ -9,87 +9,87 @@ - - + + A - - + + B - - + + C - - + + D - - + + E - - + + R - + - + aaa : A - + - + bbb : std::vector<B> - + - + ccc : std::vector<C> - + - + ddd : D - + - + eee : E * diff --git a/docs/test_cases/t00030_class_mermaid.svg b/docs/test_cases/t00030_class_mermaid.svg new file mode 100644 index 00000000..cb269976 --- /dev/null +++ b/docs/test_cases/t00030_class_mermaid.svg @@ -0,0 +1,309 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +aaa + +
+
+
+
+ + + +
+ + +bbb + +
+
+
+
+ + + +
+ 0..1 +
+
+
+
+ + + +
+ 1..* +
+
+
+ + + +
+ + +ccc + +
+
+
+
+ + + +
+ 0..1 +
+
+
+
+ + + +
+ 1..5 +
+
+
+ + + +
+ + +ddd + +
+
+
+
+ + + +
+ 1 +
+
+
+ + + +
+ + +eee + +
+
+
+
+ + + +
+ 1 +
+
+
+
+ + + + + + + + +
+ +
+
+ +
+ A +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ B +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ C +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ D +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ E +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ R +
+
+ +
+ +aaa : A +
+
+ +
+ +bbb : std::vector<B> +
+
+ +
+ +ccc : std::vector<C> +
+
+ +
+ +ddd : D +
+
+ +
+ +eee : E +
+
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t00031.md b/docs/test_cases/t00031.md index 18c5cbab..92883c60 100644 --- a/docs/test_cases/t00031.md +++ b/docs/test_cases/t00031.md @@ -59,8 +59,10 @@ struct R { } // namespace clanguml ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t00031_class](./t00031_class.svg "PlantUML style decorator test case") +## Generated Mermaid diagrams +![t00031_class](./t00031_class_mermaid.svg "PlantUML style decorator test case") ## Generated JSON models ```json { @@ -236,7 +238,7 @@ struct R { "line": 22, "translation_unit": "../../tests/t00031/t00031.cc" }, - "type": "clanguml::t00031::A *" + "type": "A *" }, { "access": "public", @@ -284,7 +286,7 @@ struct R { "line": 34, "translation_unit": "../../tests/t00031/t00031.cc" }, - "type": "clanguml::t00031::D *" + "type": "D *" } ], "methods": [ @@ -307,7 +309,7 @@ struct R { "parameters": [ { "name": "b", - "type": "clanguml::t00031::B" + "type": "B" } ], "source_location": { @@ -332,8 +334,8 @@ struct R { } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t00031_class", diff --git a/docs/test_cases/t00031_class.svg b/docs/test_cases/t00031_class.svg index 6d4f932e..bc60d6a0 100644 --- a/docs/test_cases/t00031_class.svg +++ b/docs/test_cases/t00031_class.svg @@ -1,33 +1,33 @@ - + - + - + - - - + + + A - - + + B @@ -37,8 +37,8 @@ three - - + + @@ -48,23 +48,23 @@ - + - + ttt : T - - + + D - - + + C @@ -73,47 +73,47 @@ - - + + R - + - + add_b(B b) : void - + - + aaa : A * - + - + bbb : std::vector<B> - + - + ccc : C<int> - + - + ddd : D * diff --git a/docs/test_cases/t00031_class_mermaid.svg b/docs/test_cases/t00031_class_mermaid.svg new file mode 100644 index 00000000..1f5a6c06 --- /dev/null +++ b/docs/test_cases/t00031_class_mermaid.svg @@ -0,0 +1,287 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ + +aaa + +
+
+
+
+ + + +
+ + +bbb + +
+
+
+
+ + + +
+ + +ccc + +
+
+
+
+ + + +
+ + +ddd + +
+
+
+
+
+ + + + + + + + +
+ +
+
+ +
+ A +
+
+
+
+
+ + + + + + + +
+ «Enumeration» +
+
+ +
+ B +
+
+ +
+ one +
+
+ +
+ two +
+
+ +
+ three +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ C<T> +
+
+ +
+ -ttt : T +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ D +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ C<int> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ R +
+
+ +
+ +aaa : A +
+
+ +
+ +bbb : std::vector<B> +
+
+ +
+ +ccc : C<int> +
+
+ +
+ +ddd : D +
+
+ +
+ +add_b(B b) : void +
+
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t00032.md b/docs/test_cases/t00032.md index ebdec154..39c61b99 100644 --- a/docs/test_cases/t00032.md +++ b/docs/test_cases/t00032.md @@ -56,8 +56,10 @@ struct R { } // namespace clanguml ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t00032_class](./t00032_class.svg "Class template with template base classes test case") +## Generated Mermaid diagrams +![t00032_class](./t00032_class_mermaid.svg "Class template with template base classes test case") ## Generated JSON models ```json { @@ -410,7 +412,7 @@ struct R { "line": 32, "translation_unit": "../../tests/t00032/t00032.cc" }, - "type": "Overload" + "type": "Overload" } ], "methods": [], @@ -427,8 +429,8 @@ struct R { } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t00032_class", diff --git a/docs/test_cases/t00032_class.svg b/docs/test_cases/t00032_class.svg index cc05752d..a347a031 100644 --- a/docs/test_cases/t00032_class.svg +++ b/docs/test_cases/t00032_class.svg @@ -1,6 +1,6 @@ - + @@ -9,69 +9,69 @@ - - + + Base - - + + TBase - - + + A - + - + operator()() : void - - + + B - + - + operator()() : void - - + + C - + - + operator()() : void - - + + Overload @@ -80,15 +80,15 @@ - + - + counter : L - - + + Overload @@ -97,19 +97,19 @@ - - + + R - + - + overload : Overload<TBase,int,A,B,C> diff --git a/docs/test_cases/t00032_class_mermaid.svg b/docs/test_cases/t00032_class_mermaid.svg new file mode 100644 index 00000000..978d59ff --- /dev/null +++ b/docs/test_cases/t00032_class_mermaid.svg @@ -0,0 +1,309 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ + +overload + +
+
+
+
+
+ + + + + + + + +
+ +
+
+ +
+ Base +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ TBase +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A +
+
+ +
+ +operator() : ) : void +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ B +
+
+ +
+ +operator() : ) : void +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ C +
+
+ +
+ +operator() : ) : void +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ Overload<T,L,Ts...> +
+
+ +
+ +counter : L +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ Overload<TBase,int,A,B,C> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ R +
+
+ +
+ +overload : Overload<TBase,int,A,B,C> +
+
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t00033.md b/docs/test_cases/t00033.md index 241c6c20..cc153e41 100644 --- a/docs/test_cases/t00033.md +++ b/docs/test_cases/t00033.md @@ -48,8 +48,10 @@ struct R { } // namespace clanguml ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t00033_class](./t00033_class.svg "Nested template instantiation dependency test case") +## Generated Mermaid diagrams +![t00033_class](./t00033_class_mermaid.svg "Nested template instantiation dependency test case") ## Generated JSON models ```json { @@ -231,8 +233,8 @@ struct R { "namespace": "clanguml::t00033", "source_location": { "column": 11, - "file": "../../../../../../usr/include/c++/12/bits/unique_ptr.h", - "line": 269, + "file": "../../../../../../usr/include/c++/11/bits/unique_ptr.h", + "line": 242, "translation_unit": "../../tests/t00033/t00033.cc" }, "template_parameters": [ @@ -375,8 +377,8 @@ struct R { } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t00033_class", diff --git a/docs/test_cases/t00033_class.svg b/docs/test_cases/t00033_class.svg index ee759801..6a83d9d2 100644 --- a/docs/test_cases/t00033_class.svg +++ b/docs/test_cases/t00033_class.svg @@ -1,6 +1,6 @@ - + @@ -9,8 +9,8 @@ - - + + A @@ -19,15 +19,15 @@ - + - + aaa : T - - + + B @@ -36,15 +36,15 @@ - + - + bbb : T - - + + C @@ -53,30 +53,30 @@ - + - + ccc : T - - + + D - + - + ddd : int - - + + C @@ -85,8 +85,8 @@ - - + + B @@ -95,8 +95,8 @@ - - + + A @@ -105,19 +105,19 @@ - - + + R - + - + abc : A<B<std::unique_ptr<C<D>>>> diff --git a/docs/test_cases/t00033_class_mermaid.svg b/docs/test_cases/t00033_class_mermaid.svg new file mode 100644 index 00000000..49b807b4 --- /dev/null +++ b/docs/test_cases/t00033_class_mermaid.svg @@ -0,0 +1,309 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ + +abc + +
+
+
+
+
+ + + + + + + + +
+ +
+
+ +
+ A<T> +
+
+ +
+ +aaa : T +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ B<T> +
+
+ +
+ +bbb : T +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ C<T> +
+
+ +
+ +ccc : T +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ D +
+
+ +
+ +ddd : int +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ C<D> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ B<std::unique_ptr<C<D>>> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A<B<std::unique_ptr<C<D>>>> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ R +
+
+ +
+ +abc : A<B<std::unique_ptr<C<D>>>> +
+
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t00034.md b/docs/test_cases/t00034.md index 1eada8f9..2f694724 100644 --- a/docs/test_cases/t00034.md +++ b/docs/test_cases/t00034.md @@ -74,8 +74,10 @@ struct R { } // namespace clanguml ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t00034_class](./t00034_class.svg "Template metaprogramming type function test case") +## Generated Mermaid diagrams +![t00034_class](./t00034_class_mermaid.svg "Template metaprogramming type function test case") ## Generated JSON models ```json { @@ -111,7 +113,7 @@ struct R { "parameters": [ { "name": "", - "type": "const clanguml::t00034::Void &" + "type": "const Void &" } ], "source_location": { @@ -141,7 +143,7 @@ struct R { "parameters": [ { "name": "", - "type": "const clanguml::t00034::Void &" + "type": "const Void &" } ], "source_location": { @@ -322,7 +324,7 @@ struct R { "line": 46, "translation_unit": "../../tests/t00034/t00034.cc" }, - "type": "lift_void_t *" + "type": "lift_void_t *" }, { "access": "public", @@ -351,8 +353,8 @@ struct R { } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t00034_class", diff --git a/docs/test_cases/t00034_class.svg b/docs/test_cases/t00034_class.svg index b36921bc..e08d0b05 100644 --- a/docs/test_cases/t00034_class.svg +++ b/docs/test_cases/t00034_class.svg @@ -1,6 +1,6 @@ - + @@ -9,30 +9,30 @@ - - + + Void - + - + operator!=(const Void &) constexpr const : bool - + - + operator==(const Void &) constexpr const : bool - - + + lift_void @@ -41,8 +41,8 @@ - - + + lift_void @@ -51,8 +51,8 @@ - - + + drop_void @@ -61,8 +61,8 @@ - - + + drop_void @@ -71,34 +71,34 @@ - - + + A - - + + R - + - + la : lift_void_t<A> * - + - + lv : lift_void_t<void> * diff --git a/docs/test_cases/t00034_class_mermaid.svg b/docs/test_cases/t00034_class_mermaid.svg new file mode 100644 index 00000000..0ee71308 --- /dev/null +++ b/docs/test_cases/t00034_class_mermaid.svg @@ -0,0 +1,255 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ + +la + +
+
+
+
+
+ + + + + + + + +
+ +
+
+ +
+ Void +
+
+ +
+ +operator!=(const Void &) : bool +
+
+ +
+ +operator==(const Void &) : bool +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ lift_void<T> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ lift_void<void> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ drop_void<T> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ drop_void<Void> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ R +
+
+ +
+ +la : lift_void_t<A> +
+
+ +
+ +lv : lift_void_t<void> +
+
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t00035.md b/docs/test_cases/t00035.md index a6172637..0c4040c8 100644 --- a/docs/test_cases/t00035.md +++ b/docs/test_cases/t00035.md @@ -41,8 +41,10 @@ struct Right { }; } // namespace clanguml ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t00035_class](./t00035_class.svg "PlantUML class diagram layout hints test case") +## Generated Mermaid diagrams +![t00035_class](./t00035_class_mermaid.svg "PlantUML class diagram layout hints test case") ## Generated JSON models ```json { @@ -160,8 +162,8 @@ struct Right { }; } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t00035_class", diff --git a/docs/test_cases/t00035_class.svg b/docs/test_cases/t00035_class.svg index bb335c51..b03c6010 100644 --- a/docs/test_cases/t00035_class.svg +++ b/docs/test_cases/t00035_class.svg @@ -1,6 +1,6 @@ - + @@ -9,40 +9,40 @@ - - + + Top - - + + Left - - + + Center - - + + Bottom - - + + Right diff --git a/docs/test_cases/t00035_class_mermaid.svg b/docs/test_cases/t00035_class_mermaid.svg new file mode 100644 index 00000000..5e2adfee --- /dev/null +++ b/docs/test_cases/t00035_class_mermaid.svg @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ Top +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ Left +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ Center +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ Bottom +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ Right +
+
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t00036.md b/docs/test_cases/t00036.md index 508ee267..8054bb95 100644 --- a/docs/test_cases/t00036.md +++ b/docs/test_cases/t00036.md @@ -67,8 +67,10 @@ struct DImpl : public ns2::ns22::D { }; } // namespace clanguml ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t00036_class](./t00036_class.svg "Class diagram with namespaces generated as packages") +## Generated Mermaid diagrams +![t00036_class](./t00036_class_mermaid.svg "Class diagram with namespaces generated as packages") ## Generated JSON models ```json { @@ -276,8 +278,8 @@ struct DImpl : public ns2::ns22::D { }; } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t00036_class", diff --git a/docs/test_cases/t00036_class.svg b/docs/test_cases/t00036_class.svg index fcf9a876..85c4714d 100644 --- a/docs/test_cases/t00036_class.svg +++ b/docs/test_cases/t00036_class.svg @@ -1,6 +1,6 @@ - + @@ -9,23 +9,23 @@ - + ns1 - + ns11 - + ns111 - + ns2 - + ns22 - - + + E @@ -34,8 +34,8 @@ yellow - - + + A @@ -44,15 +44,15 @@ - + - + a : T - - + + A @@ -61,23 +61,23 @@ - - + + B - + - + a_int : A<int> - - + + C diff --git a/docs/test_cases/t00036_class_mermaid.svg b/docs/test_cases/t00036_class_mermaid.svg new file mode 100644 index 00000000..b72b21b2 --- /dev/null +++ b/docs/test_cases/t00036_class_mermaid.svg @@ -0,0 +1,197 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +a_int + +
+
+
+
+ + + +
+ +
+
+
+
+
+ + + + + + + + +
+ «Enumeration» +
+
+ +
+ ns1::E +
+
+ +
+ blue +
+
+ +
+ yellow +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ ns1::ns11::A<T> +
+
+ +
+ +a : T +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ ns1::ns11::ns111::B +
+
+ +
+ +a_int : A<int> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ ns1::ns11::A<int> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ ns2::ns22::C +
+
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t00037.md b/docs/test_cases/t00037.md index 0f4eb8aa..59f1b40a 100644 --- a/docs/test_cases/t00037.md +++ b/docs/test_cases/t00037.md @@ -53,8 +53,10 @@ struct A { } // namespace clanguml ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t00037_class](./t00037_class.svg "Anonymous nested struct test case") +## Generated Mermaid diagrams +![t00037_class](./t00037_class_mermaid.svg "Anonymous nested struct test case") ## Generated JSON models ```json { @@ -245,7 +247,7 @@ struct A { "line": 29, "translation_unit": "../../tests/t00037/t00037.cc" }, - "type": "clanguml::t00037::ST" + "type": "ST" } ], "methods": [ @@ -288,8 +290,8 @@ struct A { } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t00037_class", diff --git a/docs/test_cases/t00037_class.svg b/docs/test_cases/t00037_class.svg index 6d5a7dd9..4e6a0ac3 100644 --- a/docs/test_cases/t00037_class.svg +++ b/docs/test_cases/t00037_class.svg @@ -1,6 +1,6 @@ - + @@ -9,106 +9,106 @@ - - + + ST - + - + dimensions : ST::(anonymous_662) - + - + units : ST::(anonymous_792) - - + + ST::(dimensions) - + - + t : double - + - + x : double - + - + y : double - + - + z : double - - + + ST::(units) - + - + c : double - + - + h : double - - + + A - + - + A() : void - + - + st : ST diff --git a/docs/test_cases/t00037_class_mermaid.svg b/docs/test_cases/t00037_class_mermaid.svg new file mode 100644 index 00000000..6745d65e --- /dev/null +++ b/docs/test_cases/t00037_class_mermaid.svg @@ -0,0 +1,222 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +dimensions + +
+
+
+
+ + + +
+ + -units + +
+
+
+
+ + + +
+ + +st + +
+
+
+
+
+ + + + + + + + +
+ +
+
+ +
+ ST +
+
+ +
+ +dimensions : ST::(anonymous_662) +
+
+ +
+ -units : ST::(anonymous_792) +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ ST::(dimensions) +
+
+ +
+ +t : double +
+
+ +
+ +x : double +
+
+ +
+ +y : double +
+
+ +
+ +z : double +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ ST::(units) +
+
+ +
+ +c : double +
+
+ +
+ +h : double +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A +
+
+ +
+ +st : ST +
+
+ +
+ +A() : void +
+
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t00038.md b/docs/test_cases/t00038.md index 17ab9e44..b737a30a 100644 --- a/docs/test_cases/t00038.md +++ b/docs/test_cases/t00038.md @@ -72,8 +72,10 @@ struct map - + @@ -9,8 +9,8 @@ - - + + thirdparty::ns1::color_t @@ -20,16 +20,16 @@ blue - - + + thirdparty::ns1::E - - + + property_t @@ -39,47 +39,47 @@ property_c - - + + A - - + + B - - + + C - - + + key_t - + - + key : std::string - - + + map @@ -88,8 +88,8 @@ - - + + map @@ -98,8 +98,8 @@ - - + + map @@ -108,8 +108,8 @@ - - + + map @@ -118,8 +118,8 @@ - - + + map diff --git a/docs/test_cases/t00038_class_mermaid.svg b/docs/test_cases/t00038_class_mermaid.svg new file mode 100644 index 00000000..c16735f7 --- /dev/null +++ b/docs/test_cases/t00038_class_mermaid.svg @@ -0,0 +1,453 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+
+ + + + + + + + +
+ «Enumeration» +
+
+ +
+ thirdparty::ns1::color_t +
+
+ +
+ red +
+
+ +
+ green +
+
+ +
+ blue +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ thirdparty::ns1::E +
+
+
+
+
+ + + + + + + +
+ «Enumeration» +
+
+ +
+ property_t +
+
+ +
+ property_a +
+
+ +
+ property_b +
+
+ +
+ property_c +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ B +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ C +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ key_t +
+
+ +
+ +key : std::string +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ map<T> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ map<std::integral_constant<thirdparty::ns1::color_t,thirdparty::ns1::color_t::red>> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ map<std::integral_constant<property_t,property_t::property_a>> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ map<std::vector<std::integral_constant<property_t,property_t::property_b>>> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ map<std::map<key_t,std::vector<std::integral_constant<property_t,property_t::property_c>>>> +
+
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t00039.md b/docs/test_cases/t00039.md index b7ac5aaf..f3ae6844 100644 --- a/docs/test_cases/t00039.md +++ b/docs/test_cases/t00039.md @@ -87,8 +87,10 @@ template struct FFF : public FF { } // namespace clanguml::t00039 ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t00039_class](./t00039_class.svg "Subclass class diagram filter test") +## Generated Mermaid diagrams +![t00039_class](./t00039_class_mermaid.svg "Subclass class diagram filter test") ## Generated JSON models ```json { @@ -349,7 +351,7 @@ template struct FFF : public FF { "line": 27, "translation_unit": "../../tests/t00039/t00039.cc" }, - "type": "clanguml::t00039::B *" + "type": "B *" } ], "methods": [], @@ -608,8 +610,8 @@ template struct FFF : public FF { } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t00039_class", diff --git a/docs/test_cases/t00039_class.svg b/docs/test_cases/t00039_class.svg index 77b36048..490837fd 100644 --- a/docs/test_cases/t00039_class.svg +++ b/docs/test_cases/t00039_class.svg @@ -1,6 +1,6 @@ - + @@ -9,95 +9,95 @@ - - + + C - - + + D - - + + E - - + + CD - - + + DE - - + + CDE - - + + A - - + + AA - - + + AAA - + - + b : B * - - + + ns2::AAAA - - + + ns3::F @@ -106,15 +106,15 @@ - + - + t : T * - - + + ns3::FF @@ -123,15 +123,15 @@ - + - + m : M * - - + + ns3::FE @@ -140,15 +140,15 @@ - + - + m : M * - - + + ns3::FFF @@ -157,11 +157,11 @@ - + - + n : N * diff --git a/docs/test_cases/t00039_class_mermaid.svg b/docs/test_cases/t00039_class_mermaid.svg new file mode 100644 index 00000000..2d38e266 --- /dev/null +++ b/docs/test_cases/t00039_class_mermaid.svg @@ -0,0 +1,481 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+
+ + + + + + + + +
+ +
+
+ +
+ C +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ D +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ E +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ CD +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ DE +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ CDE +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ AA +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ AAA +
+
+ +
+ +b : B +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ ns2::AAAA +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ ns3::F<T> +
+
+ +
+ +t : T +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ ns3::FF<T,M> +
+
+ +
+ +m : M +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ ns3::FE<T,M> +
+
+ +
+ +m : M +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ ns3::FFF<T,M,N> +
+
+ +
+ +n : N +
+
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t00040.md b/docs/test_cases/t00040.md index daed1831..b2d9a0bf 100644 --- a/docs/test_cases/t00040.md +++ b/docs/test_cases/t00040.md @@ -63,8 +63,10 @@ struct R { } // namespace clanguml::t00040 ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t00040_class](./t00040_class.svg "Relationship and access filter test") +## Generated Mermaid diagrams +![t00040_class](./t00040_class_mermaid.svg "Relationship and access filter test") ## Generated JSON models ```json { @@ -199,7 +201,7 @@ struct R { "line": 25, "translation_unit": "../../tests/t00040/t00040.cc" }, - "type": "clanguml::t00040::B *" + "type": "B *" }, { "access": "private", @@ -282,7 +284,7 @@ struct R { "parameters": [ { "name": "a", - "type": "clanguml::t00040::A *" + "type": "A *" } ], "source_location": { @@ -307,8 +309,8 @@ struct R { } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t00040_class", diff --git a/docs/test_cases/t00040_class.svg b/docs/test_cases/t00040_class.svg index 43b04c5c..c4bdb854 100644 --- a/docs/test_cases/t00040_class.svg +++ b/docs/test_cases/t00040_class.svg @@ -1,6 +1,6 @@ - + @@ -9,70 +9,70 @@ - - + + A - + - + get_a() : int - + - + ii_ : int - - + + AA - - + + AAA - + - + get_aaa() : int - + - + b : B * - - + + R - + - + foo(A * a) : void diff --git a/docs/test_cases/t00040_class_mermaid.svg b/docs/test_cases/t00040_class_mermaid.svg new file mode 100644 index 00000000..c16b95c9 --- /dev/null +++ b/docs/test_cases/t00040_class_mermaid.svg @@ -0,0 +1,181 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+
+ + + + + + + + +
+ +
+
+ +
+ A +
+
+ +
+ #ii_ : int +
+
+ +
+ +get_a() : int +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ AA +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ AAA +
+
+ +
+ +b : B +
+
+ +
+ +get_aaa() : int +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ R +
+
+ +
+ +foo(A * a) : void +
+
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t00041.md b/docs/test_cases/t00041.md index 70c8ed07..511928bd 100644 --- a/docs/test_cases/t00041.md +++ b/docs/test_cases/t00041.md @@ -74,8 +74,10 @@ struct NM : public N { }; } // namespace clanguml::t00041 ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t00041_class](./t00041_class.svg "Context diagram filter test") +## Generated Mermaid diagrams +![t00041_class](./t00041_class_mermaid.svg "Context diagram filter test") ## Generated JSON models ```json { @@ -123,7 +125,7 @@ struct NM : public N { }; "line": 14, "translation_unit": "../../tests/t00041/t00041.cc" }, - "type": "clanguml::t00041::RR *" + "type": "RR *" } ], "methods": [], @@ -209,7 +211,7 @@ struct NM : public N { }; "line": 28, "translation_unit": "../../tests/t00041/t00041.cc" }, - "type": "clanguml::t00041::E *" + "type": "E *" }, { "access": "public", @@ -221,7 +223,7 @@ struct NM : public N { }; "line": 29, "translation_unit": "../../tests/t00041/t00041.cc" }, - "type": "clanguml::t00041::F *" + "type": "F *" }, { "access": "public", @@ -256,7 +258,7 @@ struct NM : public N { }; "parameters": [ { "name": "h", - "type": "clanguml::t00041::H *" + "type": "H *" } ], "source_location": { @@ -390,8 +392,8 @@ struct NM : public N { }; } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t00041_class", diff --git a/docs/test_cases/t00041_class.svg b/docs/test_cases/t00041_class.svg index aca40ed3..d06dbaa4 100644 --- a/docs/test_cases/t00041_class.svg +++ b/docs/test_cases/t00041_class.svg @@ -1,6 +1,6 @@ - + @@ -9,107 +9,107 @@ - - + + R - - + + D - + - + rr : RR * - - + + E - - + + F - - + + RR - + - + foo(H * h) : void - + - + e : E * - + - + f : F * - + - + g : detail::G * - - + + RRR - - + + ns1::N - - + + ns1::NN - - + + ns1::NM diff --git a/docs/test_cases/t00041_class_mermaid.svg b/docs/test_cases/t00041_class_mermaid.svg new file mode 100644 index 00000000..63ec4462 --- /dev/null +++ b/docs/test_cases/t00041_class_mermaid.svg @@ -0,0 +1,332 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +rr + +
+
+
+
+ + + +
+ + +e + +
+
+
+
+ + + +
+ + +f + +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+
+ + + + + + + + +
+ +
+
+ +
+ R +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ D +
+
+ +
+ +rr : RR +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ E +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ F +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ RR +
+
+ +
+ +e : E +
+
+ +
+ +f : F +
+
+ +
+ +g : detail::G +
+
+ +
+ +foo(H * h) : void +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ RRR +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ ns1::N +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ ns1::NN +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ ns1::NM +
+
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t00042.md b/docs/test_cases/t00042.md index b6c12cae..41fa0615 100644 --- a/docs/test_cases/t00042.md +++ b/docs/test_cases/t00042.md @@ -59,8 +59,10 @@ struct R { } // namespace clanguml::t00042 ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t00042_class](./t00042_class.svg "Specialization class template diagram filter test") +## Generated Mermaid diagrams +![t00042_class](./t00042_class_mermaid.svg "Specialization class template diagram filter test") ## Generated JSON models ```json { @@ -305,8 +307,8 @@ struct R { } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t00042_class", diff --git a/docs/test_cases/t00042_class.svg b/docs/test_cases/t00042_class.svg index e7240d76..dfe01169 100644 --- a/docs/test_cases/t00042_class.svg +++ b/docs/test_cases/t00042_class.svg @@ -1,6 +1,6 @@ - + @@ -9,8 +9,8 @@ - - + + A @@ -19,15 +19,15 @@ - + - + a : T - - + + A @@ -36,15 +36,15 @@ - + - + a : void * - - + + B @@ -53,22 +53,22 @@ - + - + b : T - + - + bb : K - - + + A @@ -77,8 +77,8 @@ - - + + A @@ -87,8 +87,8 @@ - - + + B diff --git a/docs/test_cases/t00042_class_mermaid.svg b/docs/test_cases/t00042_class_mermaid.svg new file mode 100644 index 00000000..ecf5cddb --- /dev/null +++ b/docs/test_cases/t00042_class_mermaid.svg @@ -0,0 +1,234 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+
+ + + + + + + + +
+ +
+
+ +
+ A<T> +
+
+ +
+ +a : T +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A<void> +
+
+ +
+ +a : void +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ B<T,K> +
+
+ +
+ +b : T +
+
+ +
+ +bb : K +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A<double> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A<std::string> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ B<int,float> +
+
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t00043.md b/docs/test_cases/t00043.md index 4da12efb..f4b1a46d 100644 --- a/docs/test_cases/t00043.md +++ b/docs/test_cases/t00043.md @@ -78,8 +78,10 @@ struct J { } // namespace clanguml::t00043 ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t00043_class](./t00043_class.svg "Dependants and dependencies class diagram filter test") +## Generated Mermaid diagrams +![t00043_class](./t00043_class_mermaid.svg "Dependants and dependencies class diagram filter test") ## Generated JSON models ```json { @@ -140,7 +142,7 @@ struct J { "parameters": [ { "name": "a", - "type": "clanguml::t00043::dependants::A *" + "type": "A *" } ], "source_location": { @@ -193,7 +195,7 @@ struct J { "parameters": [ { "name": "a", - "type": "clanguml::t00043::dependants::A *" + "type": "A *" } ], "source_location": { @@ -246,7 +248,7 @@ struct J { "parameters": [ { "name": "b", - "type": "clanguml::t00043::dependants::B *" + "type": "B *" } ], "source_location": { @@ -299,7 +301,7 @@ struct J { "parameters": [ { "name": "c", - "type": "clanguml::t00043::dependants::C *" + "type": "C *" } ], "source_location": { @@ -329,7 +331,7 @@ struct J { "parameters": [ { "name": "bb", - "type": "clanguml::t00043::dependants::BB *" + "type": "BB *" } ], "source_location": { @@ -382,7 +384,7 @@ struct J { "parameters": [ { "name": "d", - "type": "clanguml::t00043::dependants::D *" + "type": "D *" } ], "source_location": { @@ -486,7 +488,7 @@ struct J { "parameters": [ { "name": "g", - "type": "clanguml::t00043::dependencies::G *" + "type": "G *" } ], "source_location": { @@ -516,7 +518,7 @@ struct J { "parameters": [ { "name": "gg", - "type": "clanguml::t00043::dependencies::GG *" + "type": "GG *" } ], "source_location": { @@ -569,7 +571,7 @@ struct J { "parameters": [ { "name": "h", - "type": "clanguml::t00043::dependencies::H *" + "type": "H *" } ], "source_location": { @@ -622,7 +624,7 @@ struct J { "parameters": [ { "name": "i", - "type": "clanguml::t00043::dependencies::I *" + "type": "I *" } ], "source_location": { @@ -651,8 +653,8 @@ struct J { } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t00043_class", diff --git a/docs/test_cases/t00043_class.svg b/docs/test_cases/t00043_class.svg index f1bf95c5..1304ac9b 100644 --- a/docs/test_cases/t00043_class.svg +++ b/docs/test_cases/t00043_class.svg @@ -1,6 +1,6 @@ - + - + @@ -9,189 +9,189 @@ - + dependants - - - dependencies - - - - - A - - + + + dependencies + + + + + A + + - - - - - B - + + + + + B + - - - + + + - - b(dependants::A * a) : void + + b(A * a) : void - - - - - - BB - + + + + + + BB + - - - + + + - - bb(dependants::A * a) : void + + bb(A * a) : void - - - - - - C - + + + + + + C + - - - + + + - - c(dependants::B * b) : void + + c(B * b) : void - - - - - - D - + + + + + + D + - - - + + + - - d(dependants::C * c) : void + + d(C * c) : void - - - + + + - - dd(dependants::BB * bb) : void + + dd(BB * bb) : void - - - - - - E - + + + + + + E + - - - + + + - - e(dependants::D * d) : void + + e(D * d) : void - - - - - - G - - + + + + + + G + + - - - - - GG - - + + + + + GG + + - - - - - H - + + + + + H + - - - + + + - - h(dependencies::G * g) : void + + h(G * g) : void - - - + + + - - hh(dependencies::GG * gg) : void + + hh(GG * gg) : void - - - - - - I - + + + + + + I + - - - + + + - - i(dependencies::H * h) : void + + i(H * h) : void - - - - - - J - + + + + + + J + - - - + + + - - i(dependencies::I * i) : void + + i(I * i) : void - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/test_cases/t00043_class_mermaid.svg b/docs/test_cases/t00043_class_mermaid.svg new file mode 100644 index 00000000..d26a7b79 --- /dev/null +++ b/docs/test_cases/t00043_class_mermaid.svg @@ -0,0 +1,419 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+
+ + + + + + + + +
+ +
+
+ +
+ dependants::A +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ dependants::B +
+
+ +
+ +b(A * a) : void +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ dependants::BB +
+
+ +
+ +bb(A * a) : void +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ dependants::C +
+
+ +
+ +c(B * b) : void +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ dependants::D +
+
+ +
+ +d(C * c) : void +
+
+ +
+ +dd(BB * bb) : void +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ dependants::E +
+
+ +
+ +e(D * d) : void +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ dependencies::G +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ dependencies::GG +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ dependencies::H +
+
+ +
+ +h(G * g) : void +
+
+ +
+ +hh(GG * gg) : void +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ dependencies::I +
+
+ +
+ +i(H * h) : void +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ dependencies::J +
+
+ +
+ +i(I * i) : void +
+
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t00044.md b/docs/test_cases/t00044.md index c149a98b..09c09c38 100644 --- a/docs/test_cases/t00044.md +++ b/docs/test_cases/t00044.md @@ -57,8 +57,10 @@ struct R { } // namespace clanguml::t00044 ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t00044_class](./t00044_class.svg "Test case for inner type aliases with parent class template args") +## Generated Mermaid diagrams +![t00044_class](./t00044_class_mermaid.svg "Test case for inner type aliases with parent class template args") ## Generated JSON models ```json { @@ -430,8 +432,8 @@ struct R { } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t00044_class", diff --git a/docs/test_cases/t00044_class.svg b/docs/test_cases/t00044_class.svg index 63829706..506e782b 100644 --- a/docs/test_cases/t00044_class.svg +++ b/docs/test_cases/t00044_class.svg @@ -1,6 +1,6 @@ - + @@ -9,8 +9,8 @@ - - + + signal_handler @@ -19,8 +19,8 @@ - - + + sink @@ -28,26 +28,26 @@ signal_handler<Ret(Args...),A> - + - + sink(signal_t & sh) : void get_signal<CastTo>() : CastTo * - + - + signal : signal_t * - - + + signal_handler @@ -56,8 +56,8 @@ - - + + sink @@ -66,23 +66,23 @@ - - + + R - + - + sink1 : sink<signal_handler<void (int),bool>> - - + + signal_handler @@ -91,8 +91,8 @@ - - + + sink diff --git a/docs/test_cases/t00044_class_mermaid.svg b/docs/test_cases/t00044_class_mermaid.svg new file mode 100644 index 00000000..4f928ac4 --- /dev/null +++ b/docs/test_cases/t00044_class_mermaid.svg @@ -0,0 +1,287 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+
+ + + +
+ + -signal + +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ + +sink1 + +
+
+
+
+
+ + + + + + + + +
+ +
+
+ +
+ signal_handler<Ret(Args...),A> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ sink<signal_handler<Ret(Args...),A>> +
+
+ +
+ -signal : signal_t +
+
+ +
+ +sink(signal_t & sh) : void +
+
+ +
+ +get_signal() : CastTo +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ signal_handler<void(int),bool> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ sink<signal_handler<void(int),bool>> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ R +
+
+ +
+ +sink1 : sink<signal_handler<void (int),bool>> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ signal_handler<T,A> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ sink<T> +
+
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t00045.md b/docs/test_cases/t00045.md index 0b5f4e99..d9817a1a 100644 --- a/docs/test_cases/t00045.md +++ b/docs/test_cases/t00045.md @@ -60,8 +60,10 @@ public: } // namespace ns1 ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t00045_class](./t00045_class.svg "Test case for root namespace handling") +## Generated Mermaid diagrams +![t00045_class](./t00045_class_mermaid.svg "Test case for root namespace handling") ## Generated JSON models ```json { @@ -377,7 +379,7 @@ public: "line": 31, "translation_unit": "../../tests/t00045/t00045.cc" }, - "type": "ns1::ns2::A *" + "type": "A *" }, { "access": "public", @@ -461,8 +463,8 @@ public: } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t00045_class", diff --git a/docs/test_cases/t00045_class.svg b/docs/test_cases/t00045_class.svg index c422693b..911a9a6b 100644 --- a/docs/test_cases/t00045_class.svg +++ b/docs/test_cases/t00045_class.svg @@ -1,6 +1,6 @@ - + @@ -9,32 +9,32 @@ - - + + A - - + + AA - - + + AAA - - + + AAAA @@ -43,110 +43,110 @@ - + - + t : T - - + + ns1::A - - + + ns1::ns2::A - - + + ns1::ns2::B - - + + ns1::ns2::C - - + + ns1::ns2::D - - + + ns1::ns2::E - - + + ns1::ns2::AAA - - + + ns1::ns2::R - + - + foo(AA & aa) : void - + - - a : ns1::ns2::A * + + a : A * - + - + ns1_a : ns1::A * - + - + ns1_ns2_a : ns1::ns2::A * - + - + root_a : ::A * diff --git a/docs/test_cases/t00045_class_mermaid.svg b/docs/test_cases/t00045_class_mermaid.svg new file mode 100644 index 00000000..33d2ca48 --- /dev/null +++ b/docs/test_cases/t00045_class_mermaid.svg @@ -0,0 +1,428 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ + +a + +
+
+
+
+ + + +
+ + +ns1_a + +
+
+
+
+ + + +
+ + +ns1_ns2_a + +
+
+
+
+ + + +
+ + +root_a + +
+
+
+
+ + + +
+ + +<> + +
+
+
+
+
+ + + + + + + + +
+ +
+
+ +
+ A +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ AA +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ AAA +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ AAAA<T> +
+
+ +
+ -t : T +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ ns1::A +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ ns1::ns2::A +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ ns1::ns2::B +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ ns1::ns2::C +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ ns1::ns2::D +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ ns1::ns2::E +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ ns1::ns2::AAA +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ ns1::ns2::R +
+
+ +
+ +a : A +
+
+ +
+ +ns1_a : ns1::A +
+
+ +
+ +ns1_ns2_a : ns1::ns2::A +
+
+ +
+ +root_a : ::A +
+
+ +
+ +foo(AA & aa) : void +
+
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t00046.md b/docs/test_cases/t00046.md index fe400fcc..41c3a812 100644 --- a/docs/test_cases/t00046.md +++ b/docs/test_cases/t00046.md @@ -53,8 +53,10 @@ public: } // namespace ns1 ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t00046_class](./t00046_class.svg "Test case for root namespace handling with packages") +## Generated Mermaid diagrams +![t00046_class](./t00046_class_mermaid.svg "Test case for root namespace handling with packages") ## Generated JSON models ```json { @@ -290,7 +292,7 @@ public: "line": 26, "translation_unit": "../../tests/t00046/t00046.cc" }, - "type": "ns1::ns2::A *" + "type": "A *" }, { "access": "public", @@ -394,8 +396,8 @@ public: } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t00046_class", diff --git a/docs/test_cases/t00046_class.svg b/docs/test_cases/t00046_class.svg index b4aeb1af..176f7d42 100644 --- a/docs/test_cases/t00046_class.svg +++ b/docs/test_cases/t00046_class.svg @@ -1,6 +1,6 @@ - + @@ -9,120 +9,120 @@ - + ns1 - + ns2 - - + + A - - + + A - - + + B - - + + C - - + + D - - + + E - - + + R - + - + foo(AA & aa) : void - + - - a : ns1::ns2::A * + + a : A * - + - + i : std::vector<std::uint8_t> - + - + ns1_a : ns1::A * - + - + ns1_ns2_a : ns1::ns2::A * - + - + root_a : ::A * - - + + A - - + + AA diff --git a/docs/test_cases/t00046_class_mermaid.svg b/docs/test_cases/t00046_class_mermaid.svg new file mode 100644 index 00000000..9b079680 --- /dev/null +++ b/docs/test_cases/t00046_class_mermaid.svg @@ -0,0 +1,359 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ + +a + +
+
+
+
+ + + +
+ + +ns1_a + +
+
+
+
+ + + +
+ + +ns1_ns2_a + +
+
+
+
+ + + +
+ + +root_a + +
+
+
+
+
+ + + + + + + + +
+ +
+
+ +
+ A +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ AA +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ ns1::A +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ ns1::ns2::A +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ ns1::ns2::B +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ ns1::ns2::C +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ ns1::ns2::D +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ ns1::ns2::E +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ ns1::ns2::R +
+
+ +
+ +a : A +
+
+ +
+ +i : std::vector<std::uint8_t> +
+
+ +
+ +ns1_a : ns1::A +
+
+ +
+ +ns1_ns2_a : ns1::ns2::A +
+
+ +
+ +root_a : ::A +
+
+ +
+ +foo(AA & aa) : void +
+
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t00047.md b/docs/test_cases/t00047.md index e0dd5452..3e44ff15 100644 --- a/docs/test_cases/t00047.md +++ b/docs/test_cases/t00047.md @@ -43,8 +43,10 @@ using conditional = typename conditional_t::type; } // namespace t00047 } // namespace clanguml ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t00047_class](./t00047_class.svg "Test case for recursive variadic template") +## Generated Mermaid diagrams +![t00047_class](./t00047_class_mermaid.svg "Test case for recursive variadic template") ## Generated JSON models ```json { @@ -192,8 +194,8 @@ using conditional = typename conditional_t::type; } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t00047_class", diff --git a/docs/test_cases/t00047_class.svg b/docs/test_cases/t00047_class.svg index eb0acaab..02837f88 100644 --- a/docs/test_cases/t00047_class.svg +++ b/docs/test_cases/t00047_class.svg @@ -1,6 +1,6 @@ - + @@ -9,8 +9,8 @@ - - + + conditional_t @@ -19,8 +19,8 @@ - - + + conditional_t @@ -29,8 +29,8 @@ - - + + conditional_t @@ -39,8 +39,8 @@ - - + + conditional_t diff --git a/docs/test_cases/t00047_class_mermaid.svg b/docs/test_cases/t00047_class_mermaid.svg new file mode 100644 index 00000000..f434bc56 --- /dev/null +++ b/docs/test_cases/t00047_class_mermaid.svg @@ -0,0 +1,166 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+
+ + + + + + + + +
+ +
+
+ +
+ conditional_t<Else> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ conditional_t<std::true_type,Result,Tail...> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ conditional_t<std::false_type,Result,Tail...> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ conditional_t<Ts...> +
+
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t00048.md b/docs/test_cases/t00048.md index 97602829..3e24087d 100644 --- a/docs/test_cases/t00048.md +++ b/docs/test_cases/t00048.md @@ -119,8 +119,10 @@ template struct BaseTemplate { } } ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t00048_class](./t00048_class.svg "Test case for unique entity id with multiple translation units") +## Generated Mermaid diagrams +![t00048_class](./t00048_class_mermaid.svg "Test case for unique entity id with multiple translation units") ## Generated JSON models ```json { @@ -543,8 +545,8 @@ template struct BaseTemplate { } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t00048_class", diff --git a/docs/test_cases/t00048_class.svg b/docs/test_cases/t00048_class.svg index 2200ab4b..91df6e20 100644 --- a/docs/test_cases/t00048_class.svg +++ b/docs/test_cases/t00048_class.svg @@ -1,6 +1,6 @@ - + @@ -9,30 +9,30 @@ - - + + Base - + - + foo() = 0 : void - + - + base : int - - + + BaseTemplate @@ -40,45 +40,45 @@ T - + - + foo() = 0 : void - + - + base : T - - + + B - + - + foo() : void - + - + b : int - - + + BTemplate @@ -86,45 +86,45 @@ T - + - + foo() : void - + - + b : T - - + + A - + - + foo() : void - + - + a : int - - + + ATemplate @@ -132,19 +132,19 @@ T - + - + foo() : void - + - + a : T diff --git a/docs/test_cases/t00048_class_mermaid.svg b/docs/test_cases/t00048_class_mermaid.svg new file mode 100644 index 00000000..94192c15 --- /dev/null +++ b/docs/test_cases/t00048_class_mermaid.svg @@ -0,0 +1,274 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+
+ + + + + + + + +
+ «abstract» +
+
+ +
+ Base +
+
+ +
+ +base : int +
+
+ +
+ +foo() : void +
+
+
+
+
+ + + + + + + +
+ «abstract» +
+
+ +
+ BaseTemplate<T> +
+
+ +
+ +base : T +
+
+ +
+ +foo() : void +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ B +
+
+ +
+ +b : int +
+
+ +
+ +foo() : void +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ BTemplate<T> +
+
+ +
+ +b : T +
+
+ +
+ +foo() : void +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A +
+
+ +
+ +a : int +
+
+ +
+ +foo() : void +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ ATemplate<T> +
+
+ +
+ +a : T +
+
+ +
+ +foo() : void +
+
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t00049.md b/docs/test_cases/t00049.md index eee6b9de..593f6a27 100644 --- a/docs/test_cases/t00049.md +++ b/docs/test_cases/t00049.md @@ -46,8 +46,10 @@ struct R { } // namespace t00049 } // namespace clanguml ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t00049_class](./t00049_class.svg "Test case configurable type aliases") +## Generated Mermaid diagrams +![t00049_class](./t00049_class_mermaid.svg "Test case configurable type aliases") ## Generated JSON models ```json { @@ -325,8 +327,8 @@ struct R { } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t00049_class", diff --git a/docs/test_cases/t00049_class.svg b/docs/test_cases/t00049_class.svg index 92378b07..929353fa 100644 --- a/docs/test_cases/t00049_class.svg +++ b/docs/test_cases/t00049_class.svg @@ -1,6 +1,6 @@ - + @@ -9,8 +9,8 @@ - - + + A @@ -18,23 +18,23 @@ T - + - + get_a() : T & - + - + a : T - - + + A @@ -43,8 +43,8 @@ - - + + A @@ -53,8 +53,8 @@ - - + + A @@ -63,47 +63,47 @@ - - + + R - + - + get_int_map() : A<intmap> - + - + set_int_map(A<intmap> && int_map) : void - + - + a_int_map : A<intmap> - + - + a_string : A<thestring> - + - + a_vector_string : A<string_vector> diff --git a/docs/test_cases/t00049_class_mermaid.svg b/docs/test_cases/t00049_class_mermaid.svg new file mode 100644 index 00000000..e1d131f9 --- /dev/null +++ b/docs/test_cases/t00049_class_mermaid.svg @@ -0,0 +1,256 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ + +a_string + +
+
+
+
+ + + +
+ + +a_vector_string + +
+
+
+
+ + + +
+ + +a_int_map + +
+
+
+
+
+ + + + + + + + +
+ +
+
+ +
+ A<T> +
+
+ +
+ +a : T +
+
+ +
+ +get_a() : T & +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A<intmap> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A<thestring> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A<string_vector> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ R +
+
+ +
+ +a_int_map : A<intmap> +
+
+ +
+ +a_string : A<thestring> +
+
+ +
+ +a_vector_string : A<string_vector> +
+
+ +
+ +get_int_map() : A<intmap> +
+
+ +
+ +set_int_map(A && int_map) : void +
+
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t00050.md b/docs/test_cases/t00050.md index 6af63138..23de4c42 100644 --- a/docs/test_cases/t00050.md +++ b/docs/test_cases/t00050.md @@ -180,8 +180,10 @@ class NoComment { }; } // namespace t00050 } // namespace clanguml ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t00050_class](./t00050_class.svg "Test case for generating notes from comments using jinja templates") +## Generated Mermaid diagrams +![t00050_class](./t00050_class_mermaid.svg "Test case for generating notes from comments using jinja templates") ## Generated JSON models ```json { @@ -504,8 +506,8 @@ class NoComment { }; } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t00050_class", diff --git a/docs/test_cases/t00050_class.svg b/docs/test_cases/t00050_class.svg index 12f5f89a..deb1171c 100644 --- a/docs/test_cases/t00050_class.svg +++ b/docs/test_cases/t00050_class.svg @@ -1,6 +1,6 @@ - + @@ -9,40 +9,40 @@ - - + + A - - + + B - - + + C - - + + utils::D - - + + E @@ -52,8 +52,8 @@ E3 - - + + F @@ -62,43 +62,43 @@ - + - + t : T[N] - + - + v : V - - + + G - - + + NoComment - + Lorem ipsum dolor sit - + Lorem ipsum dolor sit - + Lorem ipsum dolor sit amet consectetur adipiscing elit, urna consequat felis vehicula class ultricies mollis dictumst, aenean non a in donec nulla. @@ -125,50 +125,50 @@ imperdiet praesent magnis ridiculus congue gravida curabitur dictum sagittis, enim et magna sit inceptos sodales parturient pharetra mollis, aenean vel nostra tellus commodo pretium sapien sociosqu. - + This is a short description of class G. - + This is an intermediate description of class G. - + This is a long description of class G. - + Lorem ipsum - + TODO 1. Write meaningful comment - + TODO 2. Write tests - + TODO 3. Implement - + Long comment example - + TODO Implement... - + Simple array wrapper. - + Template parameters diff --git a/docs/test_cases/t00050_class_mermaid.svg b/docs/test_cases/t00050_class_mermaid.svg new file mode 100644 index 00000000..979d2d64 --- /dev/null +++ b/docs/test_cases/t00050_class_mermaid.svg @@ -0,0 +1,235 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ A +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ B +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ C +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ utils::D +
+
+
+
+
+ + + + + + + +
+ «Enumeration» +
+
+ +
+ E +
+
+ +
+ E1 +
+
+ +
+ E2 +
+
+ +
+ E3 +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ F<T,V,int N> +
+
+ +
+ -t : T[N] +
+
+ +
+ -v : V +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ G +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ NoComment +
+
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t00051.md b/docs/test_cases/t00051.md index f779ab00..1da67b36 100644 --- a/docs/test_cases/t00051.md +++ b/docs/test_cases/t00051.md @@ -82,8 +82,10 @@ A::custom_thread2 A::start_thread2() } ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t00051_class](./t00051_class.svg "Test case for relative paths in lambda names") +## Generated Mermaid diagrams +![t00051_class](./t00051_class_mermaid.svg "Test case for relative paths in lambda names") ## Generated JSON models ```json { @@ -428,7 +430,7 @@ A::custom_thread2 A::start_thread2() "line": 33, "translation_unit": "../../tests/t00051/t00051.cc" }, - "type": "clanguml::t00051::A::custom_thread1" + "type": "custom_thread1" }, { "access": "private", @@ -453,7 +455,7 @@ A::custom_thread2 A::start_thread2() "line": 39, "translation_unit": "../../tests/t00051/t00051.cc" }, - "type": "clanguml::t00051::A::custom_thread2" + "type": "custom_thread2" }, { "access": "private", @@ -637,8 +639,8 @@ A::custom_thread2 A::start_thread2() } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t00051_class", diff --git a/docs/test_cases/t00051_class.svg b/docs/test_cases/t00051_class.svg index 7463e030..063a725f 100644 --- a/docs/test_cases/t00051_class.svg +++ b/docs/test_cases/t00051_class.svg @@ -1,6 +1,6 @@ - + @@ -9,8 +9,8 @@ - - + + B @@ -18,125 +18,125 @@ F,FF=F - + - + B(F && f, FF && ff) : void - + - + f() : void - + - + ff() : void - + - + f_ : F - + - + ff_ : FF - - + + B<(lambda at ../../tests/t00051/t00051.cc:43:18),(lambda at ../../tests/t00051/t00051.cc:43:27)> - + - + B((lambda at ../../tests/t00051/t00051.cc:43:18) && f, (lambda at ../../tests/t00051/t00051.cc:43:27) && ff) : void - + - + f() : void - + - + ff() : void - + - + f_ : (lambda at ../../tests/t00051/t00051.cc:43:18) - + - + ff_ : (lambda at ../../tests/t00051/t00051.cc:43:27) - - + + A - + - + get_function() : (lambda at ../../tests/t00051/t00051.cc:48:16) - + - - start_thread1() : A::custom_thread1 + + start_thread1() : custom_thread1 - + - - start_thread2() : A::custom_thread2 + + start_thread2() : custom_thread2 - + - + start_thread3() : B<(lambda at ../../tests/t00051/t00051.cc:43:18),(lambda at ../../tests/t00051/t00051.cc:43:27)> - - + + A::custom_thread1 @@ -145,18 +145,18 @@ custom_thread1<Function,Args...>(Function && f, Args &&... args) : void - - + + A::custom_thread2 - + - + thread((lambda at ../../tests/t00051/t00051.cc:59:27) &&) : void diff --git a/docs/test_cases/t00051_class_mermaid.svg b/docs/test_cases/t00051_class_mermaid.svg new file mode 100644 index 00000000..9c4e01fc --- /dev/null +++ b/docs/test_cases/t00051_class_mermaid.svg @@ -0,0 +1,279 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ + [nested] + +
+
+
+
+ + + +
+ + [nested] + +
+
+
+
+
+ + + + + + + + +
+ +
+
+ +
+ B<F,FF=F> +
+
+ +
+ +f_ : F +
+
+ +
+ +ff_ : FF +
+
+ +
+ +B(F && f, FF && ff) : void +
+
+ +
+ +f() : void +
+
+ +
+ +ff() : void +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ B<(lambda at ../../tests/t00051/t00051.cc:43:18),(lambda at ../../tests/t00051/t00051.cc:43:27)> +
+
+ +
+ +f_ : (lambda at ../../tests/t00051/t00051.cc:43:18) +
+
+ +
+ +ff_ : (lambda at ../../tests/t00051/t00051.cc:43:27) +
+
+ +
+ +B((lambda at ../../tests/t00051/t00051.cc:43:18) && f, (lambda at ../../tests/t00051/t00051.cc:43:27) && ff) : void +
+
+ +
+ +f() : void +
+
+ +
+ +ff() : void +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A +
+
+ +
+ -get_function() : (lambda at ../../tests/t00051/t00051.cc:48:16) +
+
+ +
+ -start_thread1() : custom_thread1 +
+
+ +
+ -start_thread2() : custom_thread2 +
+
+ +
+ -start_thread3() : B<(lambda at ../../tests/t00051/t00051.cc:43:18),(lambda at ../../tests/t00051/t00051.cc:43:27)> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A::custom_thread1 +
+
+ +
+ +custom_thread1(Function && f, Args &&... args) : void +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A::custom_thread2 +
+
+ +
+ +thread((lambda at ../../tests/t00051/t00051.cc:59:27) : &&) : void +
+
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t00052.md b/docs/test_cases/t00052.md index 074a6b2f..f70437be 100644 --- a/docs/test_cases/t00052.md +++ b/docs/test_cases/t00052.md @@ -53,8 +53,10 @@ struct R { } } ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t00052_class](./t00052_class.svg "Test case for template methods rendering") +## Generated Mermaid diagrams +![t00052_class](./t00052_class_mermaid.svg "Test case for template methods rendering") ## Generated JSON models ```json { @@ -355,7 +357,7 @@ struct R { "line": 30, "translation_unit": "../../tests/t00052/t00052.cc" }, - "type": "clanguml::t00052::A" + "type": "A" }, { "access": "public", @@ -396,8 +398,8 @@ struct R { } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t00052_class", diff --git a/docs/test_cases/t00052_class.svg b/docs/test_cases/t00052_class.svg index a605c9cd..8ae3b728 100644 --- a/docs/test_cases/t00052_class.svg +++ b/docs/test_cases/t00052_class.svg @@ -1,6 +1,6 @@ - + @@ -9,8 +9,8 @@ - - + + A @@ -21,8 +21,8 @@ aa<F,Q>(F && f, Q q) : void - - + + B @@ -30,18 +30,18 @@ T - + - + b(T t) : T bb<F>(F && f, T t) : T - - + + C @@ -52,8 +52,8 @@ c<P>(P p) : T - - + + B @@ -62,8 +62,8 @@ - - + + C @@ -72,33 +72,33 @@ - - + + R - + - + a : A - + - + b : B<int> - + - + c : C<int> diff --git a/docs/test_cases/t00052_class_mermaid.svg b/docs/test_cases/t00052_class_mermaid.svg new file mode 100644 index 00000000..43421355 --- /dev/null +++ b/docs/test_cases/t00052_class_mermaid.svg @@ -0,0 +1,270 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ + +a + +
+
+
+
+ + + +
+ + +b + +
+
+
+
+ + + +
+ + +c + +
+
+
+
+
+ + + + + + + + +
+ +
+
+ +
+ A +
+
+ +
+ +a(T p) : T +
+
+ +
+ +aa(F && f, Q q) : void +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ B<T> +
+
+ +
+ +b(T t) : T +
+
+ +
+ +bb(F && f, T t) : T +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ C<T> +
+
+ +
+ -c<p>(P p) : T</p> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ B<int> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ C<int> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ R +
+
+ +
+ +a : A +
+
+ +
+ +b : B<int> +
+
+ +
+ +c : C<int> +
+
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t00053.md b/docs/test_cases/t00053.md index 5bad95ef..1bd1de0d 100644 --- a/docs/test_cases/t00053.md +++ b/docs/test_cases/t00053.md @@ -50,8 +50,10 @@ enum class j { jjj }; } } ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t00053_class](./t00053_class.svg "Test case for `together` layout hint in class diagram") +## Generated Mermaid diagrams +![t00053_class](./t00053_class_mermaid.svg "Test case for `together` layout hint in class diagram") ## Generated JSON models ```json { @@ -418,8 +420,8 @@ enum class j { jjj }; } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t00053_class", diff --git a/docs/test_cases/t00053_class.svg b/docs/test_cases/t00053_class.svg index 587925c6..46a522a6 100644 --- a/docs/test_cases/t00053_class.svg +++ b/docs/test_cases/t00053_class.svg @@ -1,6 +1,6 @@ - + @@ -9,72 +9,72 @@ - - + + A - - + + C - - + + E - - + + F - - + + a - - + + c - - + + e - - + + f - - + + h @@ -82,8 +82,8 @@ hhh - - + + j @@ -91,56 +91,56 @@ jjj - - + + b - - + + d - - + + g - - + + B - - + + D - - + + G - - + + i diff --git a/docs/test_cases/t00053_class_mermaid.svg b/docs/test_cases/t00053_class_mermaid.svg new file mode 100644 index 00000000..36915043 --- /dev/null +++ b/docs/test_cases/t00053_class_mermaid.svg @@ -0,0 +1,396 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ b +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ d +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ g +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ B +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ D +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ G +
+
+
+
+
+ + + + + + + +
+ «Enumeration» +
+
+ +
+ i +
+
+ +
+ iii +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ C +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ E +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ F +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ a +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ c +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ e +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ f +
+
+
+
+
+ + + + + + + +
+ «Enumeration» +
+
+ +
+ h +
+
+ +
+ hhh +
+
+
+
+
+ + + + + + + +
+ «Enumeration» +
+
+ +
+ j +
+
+ +
+ jjj +
+
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t00054.md b/docs/test_cases/t00054.md index e92614ff..313708e7 100644 --- a/docs/test_cases/t00054.md +++ b/docs/test_cases/t00054.md @@ -64,8 +64,10 @@ enum class j { jjj }; } } ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t00054_class](./t00054_class.svg "Test case for `together` layout hint in class diagram with rendered namespaces") +## Generated Mermaid diagrams +![t00054_class](./t00054_class_mermaid.svg "Test case for `together` layout hint in class diagram with rendered namespaces") ## Generated JSON models ```json { @@ -460,8 +462,8 @@ enum class j { jjj }; } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t00054_class", diff --git a/docs/test_cases/t00054_class.svg b/docs/test_cases/t00054_class.svg index 36964618..73f9a81b 100644 --- a/docs/test_cases/t00054_class.svg +++ b/docs/test_cases/t00054_class.svg @@ -1,6 +1,6 @@ - + @@ -9,28 +9,28 @@ - + detail - + detail2 - + detail3 - + detail4 - - + + d - - + + a @@ -40,8 +40,8 @@ - - + + c @@ -51,8 +51,8 @@ - - + + e @@ -62,40 +62,40 @@ - - + + C - - + + F - - + + D - - + + E - - + + A @@ -104,8 +104,8 @@ - - + + B @@ -114,8 +114,8 @@ - - + + f @@ -124,8 +124,8 @@ - - + + G @@ -133,8 +133,8 @@ - - + + h @@ -143,8 +143,8 @@ hhh - - + + i @@ -153,8 +153,8 @@ iii - - + + j @@ -163,16 +163,16 @@ jjj - - + + b - - + + g diff --git a/docs/test_cases/t00054_class_mermaid.svg b/docs/test_cases/t00054_class_mermaid.svg new file mode 100644 index 00000000..10857902 --- /dev/null +++ b/docs/test_cases/t00054_class_mermaid.svg @@ -0,0 +1,396 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ b +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ detail::d +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ g +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ detail2::C +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ detail2::F +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ B +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ G +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ a +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ f +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ detail2::detail3::D +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ detail2::detail3::E +
+
+
+
+
+ + + + + + + +
+ «Enumeration» +
+
+ +
+ detail4::h +
+
+ +
+ hhh +
+
+
+
+
+ + + + + + + +
+ «Enumeration» +
+
+ +
+ detail4::i +
+
+ +
+ iii +
+
+
+
+
+ + + + + + + +
+ «Enumeration» +
+
+ +
+ detail4::j +
+
+ +
+ jjj +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ detail::c +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ detail::e +
+
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t00055.md b/docs/test_cases/t00055.md index 5b50b3e0..81e27570 100644 --- a/docs/test_cases/t00055.md +++ b/docs/test_cases/t00055.md @@ -37,8 +37,10 @@ struct J { }; } } ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t00055_class](./t00055_class.svg "Test case for `row` and `column` layout hints") +## Generated Mermaid diagrams +![t00055_class](./t00055_class_mermaid.svg "Test case for `row` and `column` layout hints") ## Generated JSON models ```json { @@ -266,8 +268,8 @@ struct J { }; } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t00055_class", diff --git a/docs/test_cases/t00055_class.svg b/docs/test_cases/t00055_class.svg index ef567e17..700fb3cc 100644 --- a/docs/test_cases/t00055_class.svg +++ b/docs/test_cases/t00055_class.svg @@ -1,6 +1,6 @@ - + @@ -9,80 +9,80 @@ - - + + A - - + + B - - + + C - - + + D - - + + E - - + + F - - + + G - - + + H - - + + I - - + + J diff --git a/docs/test_cases/t00055_class_mermaid.svg b/docs/test_cases/t00055_class_mermaid.svg new file mode 100644 index 00000000..7ea49863 --- /dev/null +++ b/docs/test_cases/t00055_class_mermaid.svg @@ -0,0 +1,248 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ A +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ B +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ C +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ D +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ E +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ F +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ G +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ H +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ I +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ J +
+
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t00056.md b/docs/test_cases/t00056.md index d2e494ac..7e34c271 100644 --- a/docs/test_cases/t00056.md +++ b/docs/test_cases/t00056.md @@ -17,6 +17,7 @@ diagrams: ## Source code File t00056.cc ```cpp +#include #include namespace clanguml { @@ -111,8 +112,10 @@ struct F { } } ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t00056_class](./t00056_class.svg "Basic C++20 concepts test case") +## Generated Mermaid diagrams +![t00056_class](./t00056_class_mermaid.svg "Basic C++20 concepts test case") ## Generated JSON models ```json { @@ -127,7 +130,7 @@ struct F { "source_location": { "column": 9, "file": "../../tests/t00056/t00056.cc", - "line": 7, + "line": 8, "translation_unit": "../../tests/t00056/t00056.cc" }, "statements": [], @@ -151,7 +154,7 @@ struct F { "source_location": { "column": 9, "file": "../../tests/t00056/t00056.cc", - "line": 10, + "line": 11, "translation_unit": "../../tests/t00056/t00056.cc" }, "statements": [ @@ -168,7 +171,7 @@ struct F { "source_location": { "column": 9, "file": "../../tests/t00056/t00056.cc", - "line": 15, + "line": 16, "translation_unit": "../../tests/t00056/t00056.cc" }, "statements": [], @@ -188,7 +191,7 @@ struct F { "source_location": { "column": 9, "file": "../../tests/t00056/t00056.cc", - "line": 19, + "line": 20, "translation_unit": "../../tests/t00056/t00056.cc" }, "statements": [ @@ -206,7 +209,7 @@ struct F { "source_location": { "column": 9, "file": "../../tests/t00056/t00056.cc", - "line": 26, + "line": 27, "translation_unit": "../../tests/t00056/t00056.cc" }, "statements": [ @@ -228,7 +231,7 @@ struct F { "source_location": { "column": 9, "file": "../../tests/t00056/t00056.cc", - "line": 29, + "line": 30, "translation_unit": "../../tests/t00056/t00056.cc" }, "statements": [ @@ -247,7 +250,7 @@ struct F { "source_location": { "column": 9, "file": "../../tests/t00056/t00056.cc", - "line": 45, + "line": 46, "translation_unit": "../../tests/t00056/t00056.cc" }, "statements": [], @@ -262,7 +265,7 @@ struct F { "source_location": { "column": 9, "file": "../../tests/t00056/t00056.cc", - "line": 48, + "line": 49, "translation_unit": "../../tests/t00056/t00056.cc" }, "statements": [], @@ -285,7 +288,7 @@ struct F { "source_location": { "column": 7, "file": "../../tests/t00056/t00056.cc", - "line": 53, + "line": 54, "translation_unit": "../../tests/t00056/t00056.cc" }, "type": "T" @@ -297,7 +300,7 @@ struct F { "source_location": { "column": 36, "file": "../../tests/t00056/t00056.cc", - "line": 52, + "line": 53, "translation_unit": "../../tests/t00056/t00056.cc" }, "template_parameters": [ @@ -327,7 +330,7 @@ struct F { "source_location": { "column": 7, "file": "../../tests/t00056/t00056.cc", - "line": 60, + "line": 61, "translation_unit": "../../tests/t00056/t00056.cc" }, "type": "T" @@ -339,7 +342,7 @@ struct F { "source_location": { "column": 8, "file": "../../tests/t00056/t00056.cc", - "line": 59, + "line": 60, "translation_unit": "../../tests/t00056/t00056.cc" }, "template_parameters": [ @@ -369,7 +372,7 @@ struct F { "source_location": { "column": 7, "file": "../../tests/t00056/t00056.cc", - "line": 70, + "line": 71, "translation_unit": "../../tests/t00056/t00056.cc" }, "type": "T" @@ -381,7 +384,7 @@ struct F { "source_location": { "column": 8, "file": "../../tests/t00056/t00056.cc", - "line": 69, + "line": 70, "translation_unit": "../../tests/t00056/t00056.cc" }, "template_parameters": [ @@ -410,7 +413,7 @@ struct F { "source_location": { "column": 8, "file": "../../tests/t00056/t00056.cc", - "line": 75, + "line": 76, "translation_unit": "../../tests/t00056/t00056.cc" }, "template_parameters": [ @@ -464,7 +467,7 @@ struct F { "source_location": { "column": 8, "file": "../../tests/t00056/t00056.cc", - "line": 80, + "line": 81, "translation_unit": "../../tests/t00056/t00056.cc" }, "type": "T1" @@ -476,7 +479,7 @@ struct F { "source_location": { "column": 8, "file": "../../tests/t00056/t00056.cc", - "line": 81, + "line": 82, "translation_unit": "../../tests/t00056/t00056.cc" }, "type": "T2" @@ -488,7 +491,7 @@ struct F { "source_location": { "column": 8, "file": "../../tests/t00056/t00056.cc", - "line": 82, + "line": 83, "translation_unit": "../../tests/t00056/t00056.cc" }, "type": "T3" @@ -500,7 +503,7 @@ struct F { "source_location": { "column": 8, "file": "../../tests/t00056/t00056.cc", - "line": 79, + "line": 80, "translation_unit": "../../tests/t00056/t00056.cc" }, "template_parameters": [ @@ -542,7 +545,7 @@ struct F { "source_location": { "column": 8, "file": "../../tests/t00056/t00056.cc", - "line": 88, + "line": 89, "translation_unit": "../../tests/t00056/t00056.cc" }, "type": "T1" @@ -554,7 +557,7 @@ struct F { "source_location": { "column": 8, "file": "../../tests/t00056/t00056.cc", - "line": 89, + "line": 90, "translation_unit": "../../tests/t00056/t00056.cc" }, "type": "T2" @@ -566,7 +569,7 @@ struct F { "source_location": { "column": 8, "file": "../../tests/t00056/t00056.cc", - "line": 90, + "line": 91, "translation_unit": "../../tests/t00056/t00056.cc" }, "type": "T3" @@ -578,7 +581,7 @@ struct F { "source_location": { "column": 8, "file": "../../tests/t00056/t00056.cc", - "line": 87, + "line": 88, "translation_unit": "../../tests/t00056/t00056.cc" }, "template_parameters": [ @@ -605,8 +608,8 @@ struct F { } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t00056_class", diff --git a/docs/test_cases/t00056_class.svg b/docs/test_cases/t00056_class.svg index 05e1a14b..c9a23da9 100644 --- a/docs/test_cases/t00056_class.svg +++ b/docs/test_cases/t00056_class.svg @@ -1,6 +1,6 @@ - + @@ -9,8 +9,8 @@ - - + + «concept» @@ -20,8 +20,8 @@ - - + + «concept» @@ -33,8 +33,8 @@ sizeof (l) > sizeof (r) - - + + «concept» @@ -44,8 +44,8 @@ - - + + «concept» @@ -58,8 +58,8 @@ container.begin() container.end() - - + + «concept» @@ -71,8 +71,8 @@ typename T::value_type - - + + «concept» @@ -86,8 +86,8 @@ {std::to_string(s)} noexcept {std::to_string(s)} -> std::same_as<std::string> - - + + «concept» @@ -97,8 +97,8 @@ - - + + «concept» @@ -108,8 +108,8 @@ - - + + A @@ -118,15 +118,15 @@ - + - + a : T - - + + B @@ -135,15 +135,15 @@ - + - + b : T - - + + C @@ -152,15 +152,15 @@ - + - + c : T - - + + D @@ -169,8 +169,8 @@ - - + + E @@ -179,29 +179,29 @@ - + - + e1 : T1 - + - + e2 : T2 - + - + e3 : T3 - - + + F @@ -210,25 +210,25 @@ - + - + f1 : T1 - + - + f2 : T2 - + - + f3 : T3 diff --git a/docs/test_cases/t00056_class_mermaid.svg b/docs/test_cases/t00056_class_mermaid.svg new file mode 100644 index 00000000..e442788c --- /dev/null +++ b/docs/test_cases/t00056_class_mermaid.svg @@ -0,0 +1,594 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + T + +
+
+
+
+ + + +
+ + T + +
+
+
+
+ + + +
+ + T + +
+
+
+
+ + + +
+ + T + +
+
+
+
+ + + +
+ + T + +
+
+
+
+ + + +
+ + T + +
+
+
+
+ + + +
+ + T + +
+
+
+
+ + + +
+ + T + +
+
+
+
+ + + +
+ + T1 + +
+
+
+
+ + + +
+ + T3 + +
+
+
+
+ + + +
+ + T2 + +
+
+
+
+ + + +
+ + T5 + +
+
+
+
+ + + +
+ + T1,T3 + +
+
+
+
+ + + +
+ + T1,T3 + +
+
+
+
+
+ + + + + + + + +
+ «concept» +
+
+ +
+ greater_than_simple<T,L> +
+
+
+
+
+ + + + + + + +
+ «concept» +
+
+ +
+ greater_than_with_requires<T,P> +
+
+ +
+ "sizeof (l) > sizeof (r)" +
+
+ +
+ "(T l,P r)" +
+
+
+
+
+ + + + + + + +
+ «concept» +
+
+ +
+ max_four_bytes<T> +
+
+
+
+
+ + + + + + + +
+ «concept» +
+
+ +
+ iterable<T> +
+
+ +
+ "container.begin()" +
+
+ +
+ "container.end()" +
+
+ +
+ "(T container)" +
+
+
+
+
+ + + + + + + +
+ «concept» +
+
+ +
+ has_value_type<T> +
+
+ +
+ "typename T::value_type" +
+
+ +
+ "()" +
+
+
+
+
+ + + + + + + +
+ «concept» +
+
+ +
+ convertible_to_string<T> +
+
+ +
+ "std::string{s}" +
+
+ +
+ "{std::to_string(s)} noexcept" +
+
+ +
+ "{std::to_string(s)} -> std::same_as<std::string>" +
+
+ +
+ "(T s)" +
+
+
+
+
+ + + + + + + +
+ «concept» +
+
+ +
+ iterable_with_value_type<T> +
+
+
+
+
+ + + + + + + +
+ «concept» +
+
+ +
+ iterable_or_small_value_type<T> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A<max_four_bytes T> +
+
+ +
+ +a : T +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ B<T> +
+
+ +
+ +b : T +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ C<convertible_to_string T> +
+
+ +
+ +c : T +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ D<iterable T1,T2,iterable T3,T4,T5> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ E<T1,T2,T3> +
+
+ +
+ +e1 : T1 +
+
+ +
+ +e2 : T2 +
+
+ +
+ +e3 : T3 +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ F<T1,T2,T3> +
+
+ +
+ +f1 : T1 +
+
+ +
+ +f2 : T2 +
+
+ +
+ +f3 : T3 +
+
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t00057.md b/docs/test_cases/t00057.md index 7d9a7076..1d3a56ac 100644 --- a/docs/test_cases/t00057.md +++ b/docs/test_cases/t00057.md @@ -59,8 +59,10 @@ struct t00057_R { }; ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t00057_class](./t00057_class.svg "Test case C99/C11 translation units with structs and unions") +## Generated Mermaid diagrams +![t00057_class](./t00057_class_mermaid.svg "Test case C99/C11 translation units with structs and unions") ## Generated JSON models ```json { @@ -550,8 +552,8 @@ struct t00057_R { } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t00057_class", diff --git a/docs/test_cases/t00057_class.svg b/docs/test_cases/t00057_class.svg index 8e219367..73e936bd 100644 --- a/docs/test_cases/t00057_class.svg +++ b/docs/test_cases/t00057_class.svg @@ -1,6 +1,6 @@ - + @@ -9,53 +9,53 @@ - - + + t00057_A - + - + a1 : int - - + + t00057_B - + - + b1 : int - - + + t00057_C - + - + c1 : int - - + + «union» @@ -63,73 +63,73 @@ - + - + d1 : int - + - + d2 : float - - + + t00057_E - + - + coordinates : t00057_E::(anonymous_739) - + - + e : int - + - + height : t00057_E::(anonymous_807) - - + + t00057_E::(coordinates) - + - + x : int - + - + y : int - - + + «union» @@ -137,105 +137,105 @@ - + - + t : double - + - + z : int - - + + t00057_G - + - + g1 : int - - + + t00057_R - + - + a : struct t00057_A - + - + b : t00057_B - + - + c : struct t00057_C * - + - + d : union t00057_D - + - + e : struct t00057_E * - + - + f : struct t00057_F * - + - + g : struct t00057_G * - - + + t00057_F - + - + f1 : int diff --git a/docs/test_cases/t00057_class_mermaid.svg b/docs/test_cases/t00057_class_mermaid.svg new file mode 100644 index 00000000..64d0b5a8 --- /dev/null +++ b/docs/test_cases/t00057_class_mermaid.svg @@ -0,0 +1,463 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +coordinates + +
+
+
+
+ + + +
+ + +height + +
+
+
+
+ + + +
+ + +a + +
+
+
+
+ + + +
+ + +b + +
+
+
+
+ + + +
+ + +c + +
+
+
+
+ + + +
+ + +d + +
+
+
+
+ + + +
+ + +e + +
+
+
+
+ + + +
+ + +f + +
+
+
+
+ + + +
+ + +g + +
+
+
+
+
+ + + + + + + + +
+ +
+
+ +
+ t00057_A +
+
+ +
+ +a1 : int +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ t00057_B +
+
+ +
+ +b1 : int +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ t00057_C +
+
+ +
+ +c1 : int +
+
+
+
+
+ + + + + + + +
+ «union» +
+
+ +
+ t00057_D +
+
+ +
+ +d1 : int +
+
+ +
+ +d2 : float +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ t00057_E +
+
+ +
+ +coordinates : t00057_E::(anonymous_739) +
+
+ +
+ +e : int +
+
+ +
+ +height : t00057_E::(anonymous_807) +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ t00057_E::(coordinates) +
+
+ +
+ +x : int +
+
+ +
+ +y : int +
+
+
+
+
+ + + + + + + +
+ «union» +
+
+ +
+ t00057_E::(height) +
+
+ +
+ +t : double +
+
+ +
+ +z : int +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ t00057_G +
+
+ +
+ +g1 : int +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ t00057_R +
+
+ +
+ +a : struct t00057_A +
+
+ +
+ +b : t00057_B +
+
+ +
+ +c : struct t00057_C +
+
+ +
+ +d : union t00057_D +
+
+ +
+ +e : struct t00057_E +
+
+ +
+ +f : struct t00057_F +
+
+ +
+ +g : struct t00057_G +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ t00057_F +
+
+ +
+ +f1 : int +
+
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t00058.md b/docs/test_cases/t00058.md index 29b92be6..70872c16 100644 --- a/docs/test_cases/t00058.md +++ b/docs/test_cases/t00058.md @@ -65,8 +65,10 @@ struct R { } } ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t00058_class](./t00058_class.svg "Test case for concepts with variadic parameters and type aliases") +## Generated Mermaid diagrams +![t00058_class](./t00058_class_mermaid.svg "Test case for concepts with variadic parameters and type aliases") ## Generated JSON models ```json { @@ -433,8 +435,8 @@ struct R { } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t00058_class", diff --git a/docs/test_cases/t00058_class.svg b/docs/test_cases/t00058_class.svg index 3e69b90e..bf2653c7 100644 --- a/docs/test_cases/t00058_class.svg +++ b/docs/test_cases/t00058_class.svg @@ -1,6 +1,6 @@ - + @@ -9,8 +9,8 @@ - - + + first_type @@ -19,8 +19,8 @@ - - + + «concept» @@ -30,8 +30,8 @@ - - + + A @@ -40,15 +40,15 @@ - + - + a : std::vector<T> - - + + B @@ -57,22 +57,22 @@ - + - + b : std::vector<T> - + - + bb : P - - + + A @@ -81,8 +81,8 @@ - - + + A @@ -91,8 +91,8 @@ - - + + B @@ -101,26 +101,26 @@ - - + + R - + - + aa : A<int,int,double,std::string> - + - + bb : B<int,std::string,int,double,A<int,int>> diff --git a/docs/test_cases/t00058_class_mermaid.svg b/docs/test_cases/t00058_class_mermaid.svg new file mode 100644 index 00000000..ac57cb03 --- /dev/null +++ b/docs/test_cases/t00058_class_mermaid.svg @@ -0,0 +1,325 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + T,Args... + +
+
+
+
+ + + +
+ + T,Args... + +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ + +aa + +
+
+
+
+ + + +
+ + +bb + +
+
+
+
+
+ + + + + + + + +
+ +
+
+ +
+ first_type<T,Args...> +
+
+
+
+
+ + + + + + + +
+ «concept» +
+
+ +
+ same_as_first_type<T,Args...> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A<T,Args...> +
+
+ +
+ +a : std::vector<T> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ B<T,P,Args...> +
+
+ +
+ +b : std::vector<T> +
+
+ +
+ +bb : P +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A<int,int,double,std::string> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A<int,int> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ B<int,std::string,int,double,A<int,int>> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ R +
+
+ +
+ +aa : A<int,int,double,std::string> +
+
+ +
+ +bb : B<int,std::string,int,double,A<int,int>> +
+
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t00059.md b/docs/test_cases/t00059.md index f00dc70e..ac9b31fb 100644 --- a/docs/test_cases/t00059.md +++ b/docs/test_cases/t00059.md @@ -74,8 +74,10 @@ struct R { } } ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t00059_class](./t00059_class.svg "Non-virtual abstract factory pattern using concepts test case") +## Generated Mermaid diagrams +![t00059_class](./t00059_class_mermaid.svg "Non-virtual abstract factory pattern using concepts test case") ## Generated JSON models ```json { @@ -616,7 +618,7 @@ struct R { "line": 52, "translation_unit": "../../tests/t00059/t00059.cc" }, - "type": "clanguml::t00059::fruit_factory_1" + "type": "fruit_factory_1" }, { "access": "public", @@ -628,7 +630,7 @@ struct R { "line": 53, "translation_unit": "../../tests/t00059/t00059.cc" }, - "type": "clanguml::t00059::fruit_factory_2" + "type": "fruit_factory_2" } ], "methods": [], @@ -645,8 +647,8 @@ struct R { } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t00059_class", diff --git a/docs/test_cases/t00059_class.svg b/docs/test_cases/t00059_class.svg index 2fef6eef..78db0541 100644 --- a/docs/test_cases/t00059_class.svg +++ b/docs/test_cases/t00059_class.svg @@ -1,6 +1,6 @@ - + @@ -9,8 +9,8 @@ - - + + «concept» @@ -23,8 +23,8 @@ T{} t.get_name() - - + + «concept» @@ -36,8 +36,8 @@ t.get_sweetness() - - + + «concept» @@ -49,96 +49,96 @@ t.get_bitterness() - - + + gala_apple - + - + get_name() const : std::string - + - + get_sweetness() const : float - - + + empire_apple - + - + get_name() const : std::string - + - + get_sweetness() const : float - - + + lima_orange - + - + get_bitterness() const : float - + - + get_name() const : std::string - - + + valencia_orange - + - + get_bitterness() const : float - + - + get_name() const : std::string - - + + fruit_factory @@ -146,23 +146,23 @@ apple_c TA,orange_c TO - + - + create_apple() const : TA - + - + create_orange() const : TO - - + + fruit_factory @@ -171,8 +171,8 @@ - - + + fruit_factory @@ -181,26 +181,26 @@ - - + + R - + - + factory_1 : fruit_factory_1 - + - + factory_2 : fruit_factory_2 diff --git a/docs/test_cases/t00059_class_mermaid.svg b/docs/test_cases/t00059_class_mermaid.svg new file mode 100644 index 00000000..598de6f5 --- /dev/null +++ b/docs/test_cases/t00059_class_mermaid.svg @@ -0,0 +1,496 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + T + +
+
+
+
+ + + +
+ + T + +
+
+
+
+ + + +
+ + TA + +
+
+
+
+ + + +
+ + TO + +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ + +factory_1 + +
+
+
+
+ + + +
+ + +factory_2 + +
+
+
+
+
+ + + + + + + + +
+ «concept» +
+
+ +
+ fruit_c<T> +
+
+ +
+ "T{}" +
+
+ +
+ "t.get_name()" +
+
+ +
+ "(T t)" +
+
+
+
+
+ + + + + + + +
+ «concept» +
+
+ +
+ apple_c<T> +
+
+ +
+ "t.get_sweetness()" +
+
+ +
+ "(T t)" +
+
+
+
+
+ + + + + + + +
+ «concept» +
+
+ +
+ orange_c<T> +
+
+ +
+ "t.get_bitterness()" +
+
+ +
+ "(T t)" +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ gala_apple +
+
+ +
+ +get_name() : std::string +
+
+ +
+ +get_sweetness() : float +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ empire_apple +
+
+ +
+ +get_name() : std::string +
+
+ +
+ +get_sweetness() : float +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ lima_orange +
+
+ +
+ +get_bitterness() : float +
+
+ +
+ +get_name() : std::string +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ valencia_orange +
+
+ +
+ +get_bitterness() : float +
+
+ +
+ +get_name() : std::string +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ fruit_factory<apple_c TA,orange_c TO> +
+
+ +
+ +create_apple() : TA +
+
+ +
+ +create_orange() : TO +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ fruit_factory<gala_apple,valencia_orange> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ fruit_factory<empire_apple,lima_orange> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ R +
+
+ +
+ +factory_1 : fruit_factory_1 +
+
+ +
+ +factory_2 : fruit_factory_2 +
+
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t00060.md b/docs/test_cases/t00060.md index fea43baa..e1fb78b0 100644 --- a/docs/test_cases/t00060.md +++ b/docs/test_cases/t00060.md @@ -41,8 +41,10 @@ template struct H : public G { } } ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t00060_class](./t00060_class.svg "Parents (base classes) diagram filter test case") +## Generated Mermaid diagrams +![t00060_class](./t00060_class_mermaid.svg "Parents (base classes) diagram filter test case") ## Generated JSON models ```json { @@ -274,8 +276,8 @@ template struct H : public G { } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t00060_class", diff --git a/docs/test_cases/t00060_class.svg b/docs/test_cases/t00060_class.svg index d3882529..1e463841 100644 --- a/docs/test_cases/t00060_class.svg +++ b/docs/test_cases/t00060_class.svg @@ -1,6 +1,6 @@ - + @@ -9,40 +9,40 @@ - - + + A - - + + B - - + + C - - + + D - - + + G @@ -51,15 +51,15 @@ - + - + g : T - - + + H @@ -68,18 +68,18 @@ - + - + h : G<T> - + - + hh : P diff --git a/docs/test_cases/t00060_class_mermaid.svg b/docs/test_cases/t00060_class_mermaid.svg new file mode 100644 index 00000000..695cc8e3 --- /dev/null +++ b/docs/test_cases/t00060_class_mermaid.svg @@ -0,0 +1,251 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ + +h + +
+
+
+
+ + + +
+ +
+
+
+
+
+ + + + + + + + +
+ +
+
+ +
+ A +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ B +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ C +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ D +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ G<T> +
+
+ +
+ +g : T +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ H<T,P> +
+
+ +
+ +h : G<T> +
+
+ +
+ +hh : P +
+
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t00061.md b/docs/test_cases/t00061.md index 5a1b99f6..1b36841c 100644 --- a/docs/test_cases/t00061.md +++ b/docs/test_cases/t00061.md @@ -32,8 +32,10 @@ struct C { } } ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t00061_class](./t00061_class.svg "Paths diagram filter test case") +## Generated Mermaid diagrams +![t00061_class](./t00061_class_mermaid.svg "Paths diagram filter test case") ## Generated JSON models ```json { @@ -63,8 +65,8 @@ struct C { } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t00061_class", diff --git a/docs/test_cases/t00061_class.svg b/docs/test_cases/t00061_class.svg index 1967491b..d774201d 100644 --- a/docs/test_cases/t00061_class.svg +++ b/docs/test_cases/t00061_class.svg @@ -1,6 +1,6 @@ - + @@ -9,8 +9,8 @@ - - + + A diff --git a/docs/test_cases/t00061_class_mermaid.svg b/docs/test_cases/t00061_class_mermaid.svg new file mode 100644 index 00000000..391fd60b --- /dev/null +++ b/docs/test_cases/t00061_class_mermaid.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ A +
+
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t00062.md b/docs/test_cases/t00062.md index 33e3bed7..1ed843b8 100644 --- a/docs/test_cases/t00062.md +++ b/docs/test_cases/t00062.md @@ -122,8 +122,10 @@ struct A> { } } ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t00062_class](./t00062_class.svg "Template specialization matching based on deduced context") +## Generated Mermaid diagrams +![t00062_class](./t00062_class_mermaid.svg "Template specialization matching based on deduced context") ## Generated JSON models ```json { @@ -1370,8 +1372,8 @@ struct A> { } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t00062_class", diff --git a/docs/test_cases/t00062_class.svg b/docs/test_cases/t00062_class.svg index f66b5981..ab0031a9 100644 --- a/docs/test_cases/t00062_class.svg +++ b/docs/test_cases/t00062_class.svg @@ -1,6 +1,6 @@ - + @@ -9,8 +9,8 @@ - - + + A @@ -19,15 +19,15 @@ - + - + u : U & - - + + A @@ -36,15 +36,15 @@ - + - + u : U & - - + + A @@ -53,8 +53,8 @@ - - + + A @@ -63,15 +63,15 @@ - + - + u : U ** - - + + A @@ -80,15 +80,15 @@ - + - + u : U *** - - + + A @@ -97,15 +97,15 @@ - + - + u : U *** - - + + A @@ -114,15 +114,15 @@ - + - + u : U && - - + + A @@ -131,15 +131,15 @@ - + - + u : const U & - - + + A @@ -148,22 +148,22 @@ - + - + c : C & - + - + m : M C::* - - + + A @@ -172,22 +172,22 @@ - + - + c : C && - + - + m : M C::* - - + + A @@ -196,22 +196,22 @@ - + - + c : C & - + - + m : M C::* - - + + A @@ -220,15 +220,15 @@ - + - + c : C & - - + + A @@ -237,22 +237,22 @@ - + - + c : C && - + - + m : M C::* - - + + A @@ -261,22 +261,22 @@ - + - + c : C && - + - + mf : float C::* - - + + A @@ -285,22 +285,22 @@ - + - + c : C & - + - + m : M C::* - - + + A @@ -309,15 +309,15 @@ - + - + n : char[N] - - + + A @@ -326,15 +326,15 @@ - + - + n : std::vector<char> - - + + A @@ -343,15 +343,15 @@ - + - + klm : char[K][L][M] - - + + A @@ -360,15 +360,15 @@ - + - + u : bool - - + + A @@ -377,15 +377,15 @@ - + - + c : C<T> - - + + A @@ -394,22 +394,22 @@ - + - + args : std::tuple<Args...> - + - + c : C<T> - - + + A diff --git a/docs/test_cases/t00062_class_mermaid.svg b/docs/test_cases/t00062_class_mermaid.svg new file mode 100644 index 00000000..77bd43c5 --- /dev/null +++ b/docs/test_cases/t00062_class_mermaid.svg @@ -0,0 +1,823 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+
+ + + + + + + + +
+ +
+
+ +
+ A<U &> +
+
+ +
+ +u : U & +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A<std::map<std::string,U> &> +
+
+ +
+ +u : U & +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A<std::map<std::string,std::map<std::string,std::string>> &> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A<U * *> +
+
+ +
+ +u : U * +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A<U * * const*> +
+
+ +
+ +u : U ** +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A<U const volatile* const volatile> +
+
+ +
+ +u : U ** +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A<U &&> +
+
+ +
+ +u : U && +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A<U const&> +
+
+ +
+ +u : const U & +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A<M C::*> +
+
+ +
+ +c : C & +
+
+ +
+ +m : M C:: +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A<M C::* &&> +
+
+ +
+ +c : C && +
+
+ +
+ +m : M C:: +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A<M (C::*)(Arg)> +
+
+ +
+ +c : C & +
+
+ +
+ +m : M C:: +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A<int (C::*)(bool)> +
+
+ +
+ +c : C & +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A<M (C::*)(Arg) &&> +
+
+ +
+ +c : C && +
+
+ +
+ +m : M C:: +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A<float (C::*)(int) &&> +
+
+ +
+ +c : C && +
+
+ +
+ +mf : float C:: +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A<M (C::*)(Arg1,Arg2,Arg3)> +
+
+ +
+ +c : C & +
+
+ +
+ +m : M C:: +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A<char[N]> +
+
+ +
+ +n : char[N] +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A<char[1000]> +
+
+ +
+ +n : std::vector<char> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A<char[M][L][K]> +
+
+ +
+ +klm : char[K][L][M] +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A<U(...)> +
+
+ +
+ +u : bool +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A<C<T>> +
+
+ +
+ +c : C<T> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A<C<T,Args...>> +
+
+ +
+ +args : std::tuple<Args...> +
+
+ +
+ +c : C<T> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A<T> +
+
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t00063.md b/docs/test_cases/t00063.md index 3cfd7028..53fbd872 100644 --- a/docs/test_cases/t00063.md +++ b/docs/test_cases/t00063.md @@ -30,8 +30,10 @@ enum class C { c1, c2, c3 }; } } ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t00063_class](./t00063_class.svg "Element types diagram filter test case") +## Generated Mermaid diagrams +![t00063_class](./t00063_class_mermaid.svg "Element types diagram filter test case") ## Generated JSON models ```json { @@ -61,8 +63,8 @@ enum class C { c1, c2, c3 }; } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t00063_class", diff --git a/docs/test_cases/t00063_class.svg b/docs/test_cases/t00063_class.svg index 628a990e..245aa97b 100644 --- a/docs/test_cases/t00063_class.svg +++ b/docs/test_cases/t00063_class.svg @@ -1,6 +1,6 @@ - + @@ -9,8 +9,8 @@ - - + + A diff --git a/docs/test_cases/t00063_class_mermaid.svg b/docs/test_cases/t00063_class_mermaid.svg new file mode 100644 index 00000000..2d231a62 --- /dev/null +++ b/docs/test_cases/t00063_class_mermaid.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ A +
+
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t00064.md b/docs/test_cases/t00064.md index 8a632325..a1dcf8f9 100644 --- a/docs/test_cases/t00064.md +++ b/docs/test_cases/t00064.md @@ -82,8 +82,10 @@ public: } } ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t00064_class](./t00064_class.svg "Template type list test case") +## Generated Mermaid diagrams +![t00064_class](./t00064_class_mermaid.svg "Template type list test case") ## Generated JSON models ```json { @@ -553,7 +555,7 @@ public: "line": 46, "translation_unit": "../../tests/t00064/t00064.cc" }, - "type": "value_type const*" + "type": "const value_type *" }, { "access": "public", @@ -574,7 +576,7 @@ public: "parameters": [ { "name": "v", - "type": "value_type const&" + "type": "const value_type &" } ], "source_location": { @@ -900,7 +902,7 @@ public: "line": 57, "translation_unit": "../../tests/t00064/t00064.cc" }, - "type": "type_list" + "type": "type_list" }, { "access": "public", @@ -912,7 +914,7 @@ public: "line": 58, "translation_unit": "../../tests/t00064/t00064.cc" }, - "type": "type_group_pair,type_list>" + "type": "type_group_pair,type_list>" } ], "methods": [], @@ -1034,8 +1036,8 @@ public: } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t00064_class", diff --git a/docs/test_cases/t00064_class.svg b/docs/test_cases/t00064_class.svg index 89406df6..330d236b 100644 --- a/docs/test_cases/t00064_class.svg +++ b/docs/test_cases/t00064_class.svg @@ -1,6 +1,6 @@ - + @@ -9,8 +9,8 @@ - - + + type_list @@ -19,8 +19,8 @@ - - + + type_list @@ -29,8 +29,8 @@ - - + + type_list @@ -39,8 +39,8 @@ - - + + type_list @@ -49,8 +49,8 @@ - - + + head @@ -59,8 +59,8 @@ - - + + type_list @@ -69,8 +69,8 @@ - - + + type_list @@ -79,8 +79,8 @@ - - + + type_list @@ -89,8 +89,8 @@ - - + + type_group_pair @@ -99,15 +99,15 @@ - + - + size : const size_t - - + + optional_ref @@ -116,8 +116,8 @@ - - + + optional_ref @@ -126,8 +126,8 @@ - - + + type_group_pair_it @@ -135,54 +135,54 @@ It,type_list<First...>,type_list<Second...> - + - - find(value_type const& v) constexpr : unsigned int + + find(const value_type & v) constexpr : unsigned int - + - + get(unsigned int i) : ref_t - + - - getp(unsigned int i) : value_type const* + + getp(unsigned int i) : const value_type * - - + + A - - + + B - - + + C - - + + type_list @@ -191,8 +191,8 @@ - - + + type_list @@ -201,8 +201,8 @@ - - + + type_list @@ -211,8 +211,8 @@ - - + + type_group_pair @@ -221,30 +221,30 @@ - - + + R - + - + abc : type_group_pair<type_list<float,double>,type_list<A,B,C>> - + - + aboolint : type_list<A,bool,int> - - + + type_group_pair @@ -253,8 +253,8 @@ - - + + type_group_pair_it @@ -263,8 +263,8 @@ - - + + head diff --git a/docs/test_cases/t00064_class_mermaid.svg b/docs/test_cases/t00064_class_mermaid.svg new file mode 100644 index 00000000..298d8a14 --- /dev/null +++ b/docs/test_cases/t00064_class_mermaid.svg @@ -0,0 +1,811 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ + +aboolint + +
+
+
+
+ + + +
+ + +abc + +
+
+
+
+
+ + + + + + + + +
+ +
+
+ +
+ type_list<Ts...> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ type_list<Ret(Arg &&),Ts...> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ type_list<T const,Ts...> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ type_list<Head,Tail...> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ head<type_list<Head,Tail...>> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ type_list<Type...> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ type_list<First...> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ type_list<Second...> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ type_group_pair<type_list<First...>,type_list<Second...>> +
+
+ +
+ -size : const size_t +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ optional_ref<T> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ optional_ref<type_group_pair_it<It,type_list<First...>,type_list<Second...>>::value_type> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ type_group_pair_it<It,type_list<First...>,type_list<Second...>> +
+
+ +
+ +find(const value_type & v) : unsigned int +
+
+ +
+ +get(unsigned int i) : ref_t +
+
+ +
+ +getp(unsigned int i) : const value_type +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ B +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ C +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ type_list<A,bool,int> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ type_list<float,double> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ type_list<A,B,C> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ type_group_pair<type_list<float,double>,type_list<A,B,C>> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ R +
+
+ +
+ +abc : type_group_pair<type_list<float,double>,type_list<A,B,C>> +
+
+ +
+ +aboolint : type_list<A,bool,int> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ type_group_pair<typename,typename> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ type_group_pair_it<typename,typename,typename> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ head<typename> +
+
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t00065.md b/docs/test_cases/t00065.md index cc219cf9..436d083e 100644 --- a/docs/test_cases/t00065.md +++ b/docs/test_cases/t00065.md @@ -33,8 +33,10 @@ struct R { } } ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t00065_class](./t00065_class.svg "Class diagram with packages from directory structure") +## Generated Mermaid diagrams +![t00065_class](./t00065_class_mermaid.svg "Class diagram with packages from directory structure") ## Generated JSON models ```json { @@ -130,7 +132,7 @@ struct R { "line": 13, "translation_unit": "../../clang-uml/tests/t00065/t00065.cc" }, - "type": "clanguml::t00065::ABC" + "type": "ABC" }, { "access": "public", @@ -142,7 +144,7 @@ struct R { "line": 14, "translation_unit": "../../clang-uml/tests/t00065/t00065.cc" }, - "type": "clanguml::t00065::XYZ" + "type": "XYZ" }, { "access": "public", @@ -486,7 +488,7 @@ struct R { "line": 7, "translation_unit": "../../clang-uml/tests/t00065/t00065.cc" }, - "type": "clanguml::t00065::A *" + "type": "A *" }, { "access": "public", @@ -498,7 +500,7 @@ struct R { "line": 8, "translation_unit": "../../clang-uml/tests/t00065/t00065.cc" }, - "type": "C" + "type": "C
" }, { "access": "public", @@ -510,7 +512,7 @@ struct R { "line": 9, "translation_unit": "../../clang-uml/tests/t00065/t00065.cc" }, - "type": "D" + "type": "D" } ], "methods": [], @@ -527,8 +529,8 @@ struct R { } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t00065_class", diff --git a/docs/test_cases/t00065_class.svg b/docs/test_cases/t00065_class.svg index b20b34e7..f67bdc18 100644 --- a/docs/test_cases/t00065_class.svg +++ b/docs/test_cases/t00065_class.svg @@ -1,6 +1,6 @@ - + @@ -9,20 +9,20 @@ - + module1 - + submodule1a - + module2 - + concepts - - + + ABC @@ -32,8 +32,8 @@ c - - + + XYZ @@ -43,68 +43,68 @@ z - - + + A - + - + abc : ABC - + - + pimpl : detail::AImpl * - + - + xyz : XYZ - - + + AImpl - - + + B - + - + B() = default : void - + - + b() : void - - + + C @@ -113,15 +113,15 @@ - + - + t : T * - - + + C @@ -130,8 +130,8 @@ - - + + D @@ -140,22 +140,22 @@ - + - + c : C<int> - + - + t : T - - + + C @@ -164,8 +164,8 @@ - - + + D @@ -174,8 +174,8 @@ - - + + «concept» @@ -186,33 +186,33 @@ T{} t.b() - - + + R - + - + a : A * - + - + c : C<B> - + - + d : D<B> diff --git a/docs/test_cases/t00065_class_mermaid.svg b/docs/test_cases/t00065_class_mermaid.svg new file mode 100644 index 00000000..ab12010b --- /dev/null +++ b/docs/test_cases/t00065_class_mermaid.svg @@ -0,0 +1,534 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +abc + +
+
+
+
+ + + +
+ + +xyz + +
+
+
+
+ + + +
+ + +pimpl + +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ + T + +
+
+
+
+ + + +
+ + +c + +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+ + + +
+ + +a + +
+
+
+
+ + + +
+ + +c + +
+
+
+
+ + + +
+ + +d + +
+
+
+
+
+ + + + + + + + +
+ +
+
+ +
+ detail::AImpl +
+
+
+
+
+ + + + + + + +
+ «Enumeration» +
+
+ +
+ ABC +
+
+ +
+ a +
+
+ +
+ b +
+
+ +
+ c +
+
+
+
+
+ + + + + + + +
+ «Enumeration» +
+
+ +
+ XYZ +
+
+ +
+ x +
+
+ +
+ y +
+
+ +
+ z +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ A +
+
+ +
+ +abc : ABC +
+
+ +
+ +pimpl : detail::AImpl +
+
+ +
+ +xyz : XYZ +
+
+
+
+
+ + + + + + + +
+ «concept» +
+
+ +
+ bconcept<T> +
+
+ +
+ "T{}" +
+
+ +
+ "t.b()" +
+
+ +
+ "(T t)" +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ B +
+
+ +
+ +B() : void +
+
+ +
+ +b() : void +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ C<T> +
+
+ +
+ +t : T +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ C<int> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ D<bconcept T> +
+
+ +
+ +c : C<int> +
+
+ +
+ +t : T +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ C<B> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ D<B> +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ R +
+
+ +
+ +a : A +
+
+ +
+ +c : C<B> +
+
+ +
+ +d : D<B> +
+
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t00066.md b/docs/test_cases/t00066.md index a1a1ce84..7fdca228 100644 --- a/docs/test_cases/t00066.md +++ b/docs/test_cases/t00066.md @@ -89,8 +89,10 @@ int A::static_int = 1; } // namespace clanguml ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t00066_class](./t00066_class.svg "Class fields and methods without grouping and sorting") +## Generated Mermaid diagrams +![t00066_class](./t00066_class_mermaid.svg "Class fields and methods without grouping and sorting") ## Generated JSON models ```json { @@ -302,7 +304,7 @@ int A::static_int = 1; "parameters": [ { "name": "", - "type": "clanguml::t00066::A &&" + "type": "A &&" } ], "source_location": { @@ -332,7 +334,7 @@ int A::static_int = 1; "parameters": [ { "name": "", - "type": "const clanguml::t00066::A &" + "type": "const A &" } ], "source_location": { @@ -491,7 +493,7 @@ int A::static_int = 1; "line": 23, "translation_unit": "../../tests/t00066/t00066.cc" }, - "type": "clanguml::t00066::A &" + "type": "A &" }, { "access": "public", @@ -512,7 +514,7 @@ int A::static_int = 1; "parameters": [ { "name": "other", - "type": "clanguml::t00066::A &&" + "type": "A &&" } ], "source_location": { @@ -521,7 +523,7 @@ int A::static_int = 1; "line": 29, "translation_unit": "../../tests/t00066/t00066.cc" }, - "type": "clanguml::t00066::A &" + "type": "A &" }, { "access": "public", @@ -542,7 +544,7 @@ int A::static_int = 1; "parameters": [ { "name": "other", - "type": "clanguml::t00066::A &" + "type": "A &" } ], "source_location": { @@ -551,7 +553,7 @@ int A::static_int = 1; "line": 30, "translation_unit": "../../tests/t00066/t00066.cc" }, - "type": "clanguml::t00066::A &" + "type": "A &" }, { "access": "public", @@ -736,7 +738,7 @@ int A::static_int = 1; "line": 43, "translation_unit": "../../tests/t00066/t00066.cc" }, - "type": "clanguml::t00066::A" + "type": "A" }, { "access": "protected", @@ -802,8 +804,8 @@ int A::static_int = 1; } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t00066_class", diff --git a/docs/test_cases/t00066_class.svg b/docs/test_cases/t00066_class.svg index 04a6dda2..2cb5241a 100644 --- a/docs/test_cases/t00066_class.svg +++ b/docs/test_cases/t00066_class.svg @@ -1,6 +1,6 @@ - + @@ -9,222 +9,222 @@ - - + + A - + - + public_member : int - + - + protected_member : int - + - + private_member : int - + - + a_ : int - + - + b_ : int - + - + c_ : int - + - + static_int : int - + - + static_const_int : const int - + - + auto_member : const unsigned long - + - + A() = default : void - + - + A(int i) : void - + - + A(A &&) = default : void - + - + A(const A &) = deleted : void - + - + ~A() = default : void - + - + basic_method() : void - + - + static_method() : int - + - + const_method() const : void - + - + auto_method() : int - + - + operator++() : A & - + - + operator=(A && other) noexcept : A & - + - + operator=(A & other) noexcept : A & - + - + size() const : std::size_t - + - + double_int(const int i) : int - + - + sum(const double a, const double b) : int - + - + default_int(int i = 12) : int - + - + default_string(int i, std::string s = "abc") : std::string - + - + create_from_int(int i) : A - + - + protected_method() : void - + - + private_method() : void - + - + compare : std::function<bool (const int)> diff --git a/docs/test_cases/t00066_class_mermaid.svg b/docs/test_cases/t00066_class_mermaid.svg new file mode 100644 index 00000000..562efbe5 --- /dev/null +++ b/docs/test_cases/t00066_class_mermaid.svg @@ -0,0 +1,227 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ A +
+
+ +
+ +public_member : int +
+
+ +
+ #protected_member : int +
+
+ +
+ #compare : std::function<bool (const int)> +
+
+ +
+ -private_member : int +
+
+ +
+ -a_ : int +
+
+ +
+ -b_ : int +
+
+ +
+ -c_ : int +
+
+ +
+ +static_int : int +
+
+ +
+ +static_const_int : const int +
+
+ +
+ +auto_member : const unsigned long +
+
+ +
+ +A() : void +
+
+ +
+ +A(int i) : void +
+
+ +
+ +A(A &&) : void +
+
+ +
+ +A(const A &) : void +
+
+ +
+ +~A() : void +
+
+ +
+ +basic_method() : void +
+
+ +
+ +static_method() : int +
+
+ +
+ +const_method() : void +
+
+ +
+ +auto_method() : int +
+
+ +
+ +operator++() : A & +
+
+ +
+ +operator=(A && other) : A & +
+
+ +
+ +operator=(A & other) : A & +
+
+ +
+ +size() : std::size_t +
+
+ +
+ +double_int(const int i) : int +
+
+ +
+ +sum(const double a, const double b) : int +
+
+ +
+ +default_int(int i = 12) : int +
+
+ +
+ +default_string(int i, std::string s = "abc") : std::string +
+
+ +
+ +create_from_int(int i) : A +
+
+ +
+ #protected_method() : void +
+
+ +
+ -private_method() : void +
+
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t00067.md b/docs/test_cases/t00067.md index 044dd2a7..d512681a 100644 --- a/docs/test_cases/t00067.md +++ b/docs/test_cases/t00067.md @@ -92,8 +92,10 @@ int A::static_int = 1; } } ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t00067_class](./t00067_class.svg "Class method type filter test case") +## Generated Mermaid diagrams +![t00067_class](./t00067_class_mermaid.svg "Class method type filter test case") ## Generated JSON models ```json { @@ -525,8 +527,8 @@ int A::static_int = 1; } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t00067_class", diff --git a/docs/test_cases/t00067_class.svg b/docs/test_cases/t00067_class.svg index b94b5977..84b32a72 100644 --- a/docs/test_cases/t00067_class.svg +++ b/docs/test_cases/t00067_class.svg @@ -1,6 +1,6 @@ - + @@ -9,152 +9,152 @@ - - + + A - + - + auto_method() : int - + - + basic_method() : void - + - + const_method() const : void - + - + default_int(int i = 12) : int - + - + default_string(int i, std::string s = "abc") : std::string - + - + double_int(const int i) : int - + - + private_method() : void - + - + protected_method() : void - + - + size() const : std::size_t - + - + sum(const double a, const double b) : int - + - + a_ : int - + - + auto_member : const unsigned long - + - + b_ : int - + - + c_ : int - + - + compare : std::function<bool (const int)> - + - + private_member : int - + - + protected_member : int - + - + public_member : int - + - + static_const_int : const int - + - + static_int : int diff --git a/docs/test_cases/t00067_class_mermaid.svg b/docs/test_cases/t00067_class_mermaid.svg new file mode 100644 index 00000000..04a80ad4 --- /dev/null +++ b/docs/test_cases/t00067_class_mermaid.svg @@ -0,0 +1,177 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ A +
+
+ +
+ -a_ : int +
+
+ +
+ +auto_member : const unsigned long +
+
+ +
+ -b_ : int +
+
+ +
+ -c_ : int +
+
+ +
+ #compare : std::function<bool (const int)> +
+
+ +
+ -private_member : int +
+
+ +
+ #protected_member : int +
+
+ +
+ +public_member : int +
+
+ +
+ +static_const_int : const int +
+
+ +
+ +static_int : int +
+
+ +
+ +auto_method() : int +
+
+ +
+ +basic_method() : void +
+
+ +
+ +const_method() : void +
+
+ +
+ +default_int(int i = 12) : int +
+
+ +
+ +default_string(int i, std::string s = "abc") : std::string +
+
+ +
+ +double_int(const int i) : int +
+
+ +
+ -private_method() : void +
+
+ +
+ #protected_method() : void +
+
+ +
+ +size() : std::size_t +
+
+ +
+ +sum(const double a, const double b) : int +
+
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t20001.md b/docs/test_cases/t20001.md index 02d86640..211dd779 100644 --- a/docs/test_cases/t20001.md +++ b/docs/test_cases/t20001.md @@ -101,15 +101,17 @@ int tmain() } ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t20001_sequence](./t20001_sequence.svg "Basic sequence diagram test case") +## Generated Mermaid diagrams +![t20001_sequence](./t20001_sequence_mermaid.svg "Basic sequence diagram test case") ## Generated JSON models ```json { "diagram_type": "sequence", "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t20001_sequence", diff --git a/docs/test_cases/t20001_sequence.svg b/docs/test_cases/t20001_sequence.svg index caa78384..69772616 100644 --- a/docs/test_cases/t20001_sequence.svg +++ b/docs/test_cases/t20001_sequence.svg @@ -1,6 +1,6 @@ - + @@ -9,73 +9,73 @@ - - - - - - - - - + + + + + + + + + - - + + tmain() - + tmain() - - + + A - + A - - + + B - + B - - - - - - - - - - + + + + + + + + + + A() - + B(A &) - + add(int,int) - + wrap_add3(int,int,int) - + add3(int,int,int) - + @@ -86,7 +86,7 @@ - + @@ -95,14 +95,14 @@ - + log_result(int) - + Main test function diff --git a/docs/test_cases/t20001_sequence_mermaid.svg b/docs/test_cases/t20001_sequence_mermaid.svg new file mode 100644 index 00000000..8f0edbdc --- /dev/null +++ b/docs/test_cases/t20001_sequence_mermaid.svg @@ -0,0 +1,136 @@ + + + + + B + + + + + + A + + + + + + tmain() + + + + + + + + B + + + + + + + + + A + + + + + + + + + tmain() + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A() + + B(A &) + + add(int,int) + + + + wrap_add3(int,int,int) + + add3(int,int,int) + + add(int,int) + + + + log_result(int) + + + + log_result(int) + + + + diff --git a/docs/test_cases/t20002.md b/docs/test_cases/t20002.md index 6874730a..4f9c61c0 100644 --- a/docs/test_cases/t20002.md +++ b/docs/test_cases/t20002.md @@ -38,15 +38,17 @@ void m1() { m2(); } } ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t20002_sequence](./t20002_sequence.svg "Free function sequence diagram test case") +## Generated Mermaid diagrams +![t20002_sequence](./t20002_sequence_mermaid.svg "Free function sequence diagram test case") ## Generated JSON models ```json { "diagram_type": "sequence", "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t20002_sequence", diff --git a/docs/test_cases/t20002_sequence.svg b/docs/test_cases/t20002_sequence.svg index f7df505d..6080168e 100644 --- a/docs/test_cases/t20002_sequence.svg +++ b/docs/test_cases/t20002_sequence.svg @@ -1,6 +1,6 @@ - + @@ -9,51 +9,51 @@ - - - - + + + + - - + + m1() - + m1() - - + + m2() - + m2() - - + + m3() - + m3() - - + + m4() - + m4() - - - - - + + + + + - + - + diff --git a/docs/test_cases/t20002_sequence_mermaid.svg b/docs/test_cases/t20002_sequence_mermaid.svg new file mode 100644 index 00000000..b759ec7c --- /dev/null +++ b/docs/test_cases/t20002_sequence_mermaid.svg @@ -0,0 +1,118 @@ + + + + + m4() + + + + + + m3() + + + + + + m2() + + + + + + m1() + + + + + + + + m4() + + + + + + + + + m3() + + + + + + + + + m2() + + + + + + + + + m1() + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/test_cases/t20003.md b/docs/test_cases/t20003.md index 624e3366..8af703a6 100644 --- a/docs/test_cases/t20003.md +++ b/docs/test_cases/t20003.md @@ -34,15 +34,17 @@ template void m1(T p) { m2(p); } } ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t20003_sequence](./t20003_sequence.svg "Function template sequence diagram test case") +## Generated Mermaid diagrams +![t20003_sequence](./t20003_sequence_mermaid.svg "Function template sequence diagram test case") ## Generated JSON models ```json { "diagram_type": "sequence", "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t20003_sequence", diff --git a/docs/test_cases/t20003_sequence.svg b/docs/test_cases/t20003_sequence.svg index 66d24598..7c0be285 100644 --- a/docs/test_cases/t20003_sequence.svg +++ b/docs/test_cases/t20003_sequence.svg @@ -1,6 +1,6 @@ - + @@ -9,51 +9,51 @@ - - - - + + + + - - + + m1<T>(T) - + m1<T>(T) - - + + m2<T>(T) - + m2<T>(T) - - + + m3<T>(T) - + m3<T>(T) - - + + m4<T>(T) - + m4<T>(T) - - - - - + + + + + - + - + diff --git a/docs/test_cases/t20003_sequence_mermaid.svg b/docs/test_cases/t20003_sequence_mermaid.svg new file mode 100644 index 00000000..a018550c --- /dev/null +++ b/docs/test_cases/t20003_sequence_mermaid.svg @@ -0,0 +1,118 @@ + + + + + m4<T>(T) + + + + + + m3<T>(T) + + + + + + m2<T>(T) + + + + + + m1<T>(T) + + + + + + + + m4<T>(T) + + + + + + + + + m3<T>(T) + + + + + + + + + m2<T>(T) + + + + + + + + + m1<T>(T) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/test_cases/t20004.md b/docs/test_cases/t20004.md index 75e7f0af..8da5ead5 100644 --- a/docs/test_cases/t20004.md +++ b/docs/test_cases/t20004.md @@ -70,15 +70,17 @@ int main() } ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t20004_sequence](./t20004_sequence.svg "Function template instantiation sequence diagram test case") +## Generated Mermaid diagrams +![t20004_sequence](./t20004_sequence_mermaid.svg "Function template instantiation sequence diagram test case") ## Generated JSON models ```json { "diagram_type": "sequence", "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t20004_sequence", diff --git a/docs/test_cases/t20004_sequence.svg b/docs/test_cases/t20004_sequence.svg index 897d7ff8..5ad0e1e9 100644 --- a/docs/test_cases/t20004_sequence.svg +++ b/docs/test_cases/t20004_sequence.svg @@ -1,6 +1,6 @@ - + @@ -9,16 +9,16 @@ - - - - - - - - - - + + + + + + + + + + @@ -29,87 +29,87 @@ - - + + main() - + main() - - + + m1<float>(float) - + m1<float>(float) - - + + m1<unsigned long>(unsigned long) - + m1<unsigned long>(unsigned long) - - + + m4<unsigned long>(unsigned long) - + m4<unsigned long>(unsigned long) - - + + m1<std::string>(std::string) - + m1<std::string>(std::string) - - + + m2<std::string>(std::string) - + m2<std::string>(std::string) - - + + m1<int>(int) - + m1<int>(int) - - + + m2<int>(int) - + m2<int>(int) - - + + m3<int>(int) - + m3<int>(int) - - + + m4<int>(int) - + m4<int>(int) - - - - - - - - - - - + + + + + + + + + + + - + - + @@ -117,11 +117,11 @@ - + - + @@ -129,19 +129,19 @@ - + - + - + - + diff --git a/docs/test_cases/t20004_sequence_mermaid.svg b/docs/test_cases/t20004_sequence_mermaid.svg new file mode 100644 index 00000000..6d8e9e91 --- /dev/null +++ b/docs/test_cases/t20004_sequence_mermaid.svg @@ -0,0 +1,256 @@ + + + + + m4<int>(int) + + + + + + m3<int>(int) + + + + + + m2<int>(int) + + + + + + m1<int>(int) + + + + + + m2<std::string>(std::string) + + + + + + m1<std::string>(std::string) + + + + + + m4<unsigned long>(unsigned long) + + + + + + m1<unsigned long>(unsigned long) + + + + + + m1<float>(float) + + + + + + main() + + + + + + + + m4<int>(int) + + + + + + + + + m3<int>(int) + + + + + + + + + m2<int>(int) + + + + + + + + + m1<int>(int) + + + + + + + + + m2<std::string>(std::string) + + + + + + + + + m1<std::string>(std::string) + + + + + + + + + m4<unsigned long>(unsigned long) + + + + + + + + + m1<unsigned long>(unsigned long) + + + + + + + + + m1<float>(float) + + + + + + + + + main() + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/test_cases/t20005.md b/docs/test_cases/t20005.md index e27f5940..a38c8461 100644 --- a/docs/test_cases/t20005.md +++ b/docs/test_cases/t20005.md @@ -41,15 +41,17 @@ template struct C { } } ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t20005_sequence](./t20005_sequence.svg "Class template basic sequence diagram") +## Generated Mermaid diagrams +![t20005_sequence](./t20005_sequence_mermaid.svg "Class template basic sequence diagram") ## Generated JSON models ```json { "diagram_type": "sequence", "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t20005_sequence", diff --git a/docs/test_cases/t20005_sequence.svg b/docs/test_cases/t20005_sequence.svg index 1bacf220..9b5f1ba1 100644 --- a/docs/test_cases/t20005_sequence.svg +++ b/docs/test_cases/t20005_sequence.svg @@ -1,6 +1,6 @@ - + @@ -9,42 +9,42 @@ - - - + + + - - + + C<T> - + C<T> - - + + B<T> - + B<T> - - + + A<T> - + A<T> - - - + + + c(T) - + b(T) - + a(T) diff --git a/docs/test_cases/t20005_sequence_mermaid.svg b/docs/test_cases/t20005_sequence_mermaid.svg new file mode 100644 index 00000000..8bb98453 --- /dev/null +++ b/docs/test_cases/t20005_sequence_mermaid.svg @@ -0,0 +1,121 @@ + + + + + A<T> + + + + + + B<T> + + + + + + * + + + + + + C<T> + + + + + + + + A<T> + + + + + + + + + B<T> + + + + + + + + + * + + + + + + + + + C<T> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + c(T) + + b(T) + + a(T) + + + + + + + + diff --git a/docs/test_cases/t20006.md b/docs/test_cases/t20006.md index 414fbb69..cd7307bb 100644 --- a/docs/test_cases/t20006.md +++ b/docs/test_cases/t20006.md @@ -99,15 +99,17 @@ void tmain() } } ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t20006_sequence](./t20006_sequence.svg "Class template specialization basic sequence diagram") +## Generated Mermaid diagrams +![t20006_sequence](./t20006_sequence_mermaid.svg "Class template specialization basic sequence diagram") ## Generated JSON models ```json { "diagram_type": "sequence", "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t20006_sequence", diff --git a/docs/test_cases/t20006_sequence.svg b/docs/test_cases/t20006_sequence.svg index dcee9252..a43a354f 100644 --- a/docs/test_cases/t20006_sequence.svg +++ b/docs/test_cases/t20006_sequence.svg @@ -1,6 +1,6 @@ - + @@ -9,24 +9,24 @@ - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + @@ -36,84 +36,84 @@ - - + + tmain() - + tmain() - - + + B<int> - + B<int> - - + + A<int> - + A<int> - - + + B<std::string> - + B<std::string> - - + + A<std::string> - + A<std::string> - - + + BB<int,std::string> - + BB<int,std::string> - - + + BB<int,float> - + BB<int,float> - - + + BB<int,int> - + BB<int,int> - - + + AA<int> - + AA<int> - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + b(int) - + a1(int) @@ -122,12 +122,12 @@ - + b(std::string) - + a2(std::string) @@ -136,69 +136,69 @@ - + BB(AA<int> *) - + BB(AA<int> &) - + bb1(int,int) - + aa1(int) - + bb2(int,int) - + aa2(int) - + bb1(int,std::string) - + aa2(int) - + bb2(int,std::string) - + aa1(int) - + bb1(int,float) - + bb2(int,float) - + aa2(int) diff --git a/docs/test_cases/t20006_sequence_mermaid.svg b/docs/test_cases/t20006_sequence_mermaid.svg new file mode 100644 index 00000000..e09f86e5 --- /dev/null +++ b/docs/test_cases/t20006_sequence_mermaid.svg @@ -0,0 +1,271 @@ + + + + + AA<int> + + + + + + BB<int,int> + + + + + + BB<int,float> + + + + + + BB<int,std::string> + + + + + + A<std::string> + + + + + + B<std::string> + + + + + + A<int> + + + + + + B<int> + + + + + + tmain() + + + + + + + + AA<int> + + + + + + + + + BB<int,int> + + + + + + + + + BB<int,float> + + + + + + + + + BB<int,std::string> + + + + + + + + + A<std::string> + + + + + + + + + B<std::string> + + + + + + + + + A<int> + + + + + + + + + B<int> + + + + + + + + + tmain() + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + b(int) + + a1(int) + + + + + + b(std::string) + + a2(std::string) + + + + + + BB(AA<int> *) + + BB(AA<int> &) + + bb1(int,int) + + aa1(int) + + bb2(int,int) + + aa2(int) + + bb1(int,std::string) + + aa2(int) + + bb2(int,std::string) + + aa1(int) + + bb1(int,float) + + bb2(int,float) + + aa2(int) + + diff --git a/docs/test_cases/t20007.md b/docs/test_cases/t20007.md index 780cbe69..57060d56 100644 --- a/docs/test_cases/t20007.md +++ b/docs/test_cases/t20007.md @@ -45,15 +45,17 @@ void tmain() } } ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t20007_sequence](./t20007_sequence.svg "Class template variadic argument list sequence diagram") +## Generated Mermaid diagrams +![t20007_sequence](./t20007_sequence_mermaid.svg "Class template variadic argument list sequence diagram") ## Generated JSON models ```json { "diagram_type": "sequence", "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t20007_sequence", diff --git a/docs/test_cases/t20007_sequence.svg b/docs/test_cases/t20007_sequence.svg index 54b3f78d..d38bf8db 100644 --- a/docs/test_cases/t20007_sequence.svg +++ b/docs/test_cases/t20007_sequence.svg @@ -1,6 +1,6 @@ - + @@ -9,57 +9,57 @@ - - - - + + + + - - + + tmain() - + tmain() - - + + Adder<int,int> - + Adder<int,int> - - + + Adder<int,float,double> - + Adder<int,float,double> - - + + Adder<std::string,std::string,std::string> - + Adder<std::string,std::string,std::string> - - - - - + + + + + add(int &&,int &&) - + add(int &&,float &&,double &&) - + add(std::string &&,std::string &&,std::string &&) diff --git a/docs/test_cases/t20007_sequence_mermaid.svg b/docs/test_cases/t20007_sequence_mermaid.svg new file mode 100644 index 00000000..d41ca006 --- /dev/null +++ b/docs/test_cases/t20007_sequence_mermaid.svg @@ -0,0 +1,124 @@ + + + + + Adder<std::string,std::string,std::string> + + + + + + Adder<int,float,double> + + + + + + Adder<int,int> + + + + + + tmain() + + + + + + + + Adder<std::string,std::string,std::string> + + + + + + + + + Adder<int,float,double> + + + + + + + + + Adder<int,int> + + + + + + + + + tmain() + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + add(int &&,int &&) + + + + add(int &&,float &&,double &&) + + + + add(std::string &&,std::string &&,std::string &&) + + + + diff --git a/docs/test_cases/t20008.md b/docs/test_cases/t20008.md index 4878842d..e2746d2c 100644 --- a/docs/test_cases/t20008.md +++ b/docs/test_cases/t20008.md @@ -63,15 +63,17 @@ void tmain() } } ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t20008_sequence](./t20008_sequence.svg "Constexpr if sequence diagram test case") +## Generated Mermaid diagrams +![t20008_sequence](./t20008_sequence_mermaid.svg "Constexpr if sequence diagram test case") ## Generated JSON models ```json { "diagram_type": "sequence", "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t20008_sequence", diff --git a/docs/test_cases/t20008_sequence.svg b/docs/test_cases/t20008_sequence.svg index 6eff851e..19251b4e 100644 --- a/docs/test_cases/t20008_sequence.svg +++ b/docs/test_cases/t20008_sequence.svg @@ -1,6 +1,6 @@ - + @@ -9,13 +9,13 @@ - - - - - - - + + + + + + + @@ -23,81 +23,81 @@ - - + + tmain() - + tmain() - - + + B<int> - + B<int> - - + + A<int> - + A<int> - - + + B<const char *> - + B<const char *> - - + + A<const char *> - + A<const char *> - - + + B<std::string> - + B<std::string> - - + + A<std::string> - + A<std::string> - - - - - - - - + + + + + + + + b(int) - + a1(int) - + b(const char *) - + a2(const char *) - + b(std::string) - + a3(std::string) diff --git a/docs/test_cases/t20008_sequence_mermaid.svg b/docs/test_cases/t20008_sequence_mermaid.svg new file mode 100644 index 00000000..17aaaa5d --- /dev/null +++ b/docs/test_cases/t20008_sequence_mermaid.svg @@ -0,0 +1,178 @@ + + + + + A<std::string> + + + + + + B<std::string> + + + + + + A<const char *> + + + + + + B<const char *> + + + + + + A<int> + + + + + + B<int> + + + + + + tmain() + + + + + + + + A<std::string> + + + + + + + + + B<std::string> + + + + + + + + + A<const char *> + + + + + + + + + B<const char *> + + + + + + + + + A<int> + + + + + + + + + B<int> + + + + + + + + + tmain() + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + b(int) + + a1(int) + + b(const char *) + + a2(const char *) + + b(std::string) + + a3(std::string) + + diff --git a/docs/test_cases/t20009.md b/docs/test_cases/t20009.md index 2194e5df..03d133dc 100644 --- a/docs/test_cases/t20009.md +++ b/docs/test_cases/t20009.md @@ -49,15 +49,17 @@ void tmain() } } ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t20009_sequence](./t20009_sequence.svg "Smart pointer dereference call expression test case") +## Generated Mermaid diagrams +![t20009_sequence](./t20009_sequence_mermaid.svg "Smart pointer dereference call expression test case") ## Generated JSON models ```json { "diagram_type": "sequence", "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t20009_sequence", diff --git a/docs/test_cases/t20009_sequence.svg b/docs/test_cases/t20009_sequence.svg index 127ce789..d76e4fd7 100644 --- a/docs/test_cases/t20009_sequence.svg +++ b/docs/test_cases/t20009_sequence.svg @@ -1,6 +1,6 @@ - + @@ -9,13 +9,13 @@ - - - - - - - + + + + + + + @@ -23,81 +23,81 @@ - - + + tmain() - + tmain() - - + + B<std::string> - + B<std::string> - - + + A<std::string> - + A<std::string> - - + + B<int> - + B<int> - - + + A<int> - + A<int> - - + + B<float> - + B<float> - - + + A<float> - + A<float> - - - - - - - - + + + + + + + + b(std::string) - + a(std::string) - + b(int) - + a(int) - + b(float) - + a(float) diff --git a/docs/test_cases/t20009_sequence_mermaid.svg b/docs/test_cases/t20009_sequence_mermaid.svg new file mode 100644 index 00000000..5ce7e173 --- /dev/null +++ b/docs/test_cases/t20009_sequence_mermaid.svg @@ -0,0 +1,178 @@ + + + + + A<float> + + + + + + B<float> + + + + + + A<int> + + + + + + B<int> + + + + + + A<std::string> + + + + + + B<std::string> + + + + + + tmain() + + + + + + + + A<float> + + + + + + + + + B<float> + + + + + + + + + A<int> + + + + + + + + + B<int> + + + + + + + + + A<std::string> + + + + + + + + + B<std::string> + + + + + + + + + tmain() + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + b(std::string) + + a(std::string) + + b(int) + + a(int) + + b(float) + + a(float) + + diff --git a/docs/test_cases/t20010.md b/docs/test_cases/t20010.md index a67bff8b..bdb62839 100644 --- a/docs/test_cases/t20010.md +++ b/docs/test_cases/t20010.md @@ -59,15 +59,17 @@ void tmain() } } ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t20010_sequence](./t20010_sequence.svg "Container sequence diagram test case") +## Generated Mermaid diagrams +![t20010_sequence](./t20010_sequence_mermaid.svg "Container sequence diagram test case") ## Generated JSON models ```json { "diagram_type": "sequence", "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t20010_sequence", diff --git a/docs/test_cases/t20010_sequence.svg b/docs/test_cases/t20010_sequence.svg index b265ac5f..0b553367 100644 --- a/docs/test_cases/t20010_sequence.svg +++ b/docs/test_cases/t20010_sequence.svg @@ -1,6 +1,6 @@ - + @@ -9,81 +9,81 @@ - - - - - - - - - + + + + + + + + + - - + + tmain() - + tmain() - - + + B<int> - + B<int> - - + + A - + A - - - - - - - - - - + + + + + + + + + + b1() - + a1() - + b2() - + a2() - + b3() - + a3() - + b4() - + a4() diff --git a/docs/test_cases/t20010_sequence_mermaid.svg b/docs/test_cases/t20010_sequence_mermaid.svg new file mode 100644 index 00000000..b3a99f04 --- /dev/null +++ b/docs/test_cases/t20010_sequence_mermaid.svg @@ -0,0 +1,128 @@ + + + + + A + + + + + + B<int> + + + + + + tmain() + + + + + + + + A + + + + + + + + + B<int> + + + + + + + + + tmain() + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + b1() + + a1() + + b2() + + a2() + + b3() + + a3() + + b4() + + a4() + + diff --git a/docs/test_cases/t20011.md b/docs/test_cases/t20011.md index 84feb92e..0681cea1 100644 --- a/docs/test_cases/t20011.md +++ b/docs/test_cases/t20011.md @@ -51,15 +51,17 @@ void tmain() } } ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t20011_sequence](./t20011_sequence.svg "Recursive calls sequence diagram test case") +## Generated Mermaid diagrams +![t20011_sequence](./t20011_sequence_mermaid.svg "Recursive calls sequence diagram test case") ## Generated JSON models ```json { "diagram_type": "sequence", "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t20011_sequence", diff --git a/docs/test_cases/t20011_sequence.svg b/docs/test_cases/t20011_sequence.svg index 1bdeb089..5508fc56 100644 --- a/docs/test_cases/t20011_sequence.svg +++ b/docs/test_cases/t20011_sequence.svg @@ -1,6 +1,6 @@ - + @@ -9,42 +9,42 @@ - - - - - - - - - - - - + + + + + + + + + + + + - - + + tmain() - + tmain() - - + + A - + A - - - - - - - - - - + + + + + + + + + + a(int) @@ -52,26 +52,26 @@ alt - + a(int) - + b(int) - + c(int) - + @@ -81,14 +81,14 @@ alt - + b(int) - + @@ -98,7 +98,7 @@ alt - + diff --git a/docs/test_cases/t20011_sequence_mermaid.svg b/docs/test_cases/t20011_sequence_mermaid.svg new file mode 100644 index 00000000..b9e6399d --- /dev/null +++ b/docs/test_cases/t20011_sequence_mermaid.svg @@ -0,0 +1,146 @@ + + + + + A + + + + + + tmain() + + + + + + + + A + + + + + + + + + tmain() + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + alt + + + + + + + + + + + + + + + + + + + + + + + + + + + + + alt + + + + + + + + + + + alt + + + + + a(int) + + a(int) + + b(int) + + c(int) + + d(int) + + b(int) + + a(int) + + a(int) + + diff --git a/docs/test_cases/t20012.md b/docs/test_cases/t20012.md index 65999936..e1728140 100644 --- a/docs/test_cases/t20012.md +++ b/docs/test_cases/t20012.md @@ -126,15 +126,17 @@ void tmain() } ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t20012_sequence](./t20012_sequence.svg "Lambda expression call sequence diagram test case") +## Generated Mermaid diagrams +![t20012_sequence](./t20012_sequence_mermaid.svg "Lambda expression call sequence diagram test case") ## Generated JSON models ```json { "diagram_type": "sequence", "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t20012_sequence", diff --git a/docs/test_cases/t20012_sequence.svg b/docs/test_cases/t20012_sequence.svg index 2d04ffd2..a05ce0fe 100644 --- a/docs/test_cases/t20012_sequence.svg +++ b/docs/test_cases/t20012_sequence.svg @@ -1,6 +1,6 @@ - + @@ -9,31 +9,31 @@ - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + @@ -42,116 +42,116 @@ - - + + tmain() - + tmain() - - + + tmain()::(lambda ../../tests/t20012/t20012.cc:67:20) - + tmain()::(lambda ../../tests/t20012/t20012.cc:67:20) - - + + A - + A - - + + B - + B - - + + tmain()::(lambda ../../tests/t20012/t20012.cc:80:20) - + tmain()::(lambda ../../tests/t20012/t20012.cc:80:20) - - + + C - + C - - + + R<R::(lambda ../../tests/t20012/t20012.cc:86:9)> - + R<R::(lambda ../../tests/t20012/t20012.cc:86:9)> - - + + tmain()::(lambda ../../tests/t20012/t20012.cc:86:9) - + tmain()::(lambda ../../tests/t20012/t20012.cc:86:9) - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + operator()() - + a() - + aa() - + aaa() - + b() - + bb() - + @@ -160,67 +160,67 @@ - + operator()() - + c() - + cc() - + ccc() - + operator()() - + a() - + aa() - + aaa() - + b() - + bb() - + @@ -231,34 +231,34 @@ - + R((lambda at /home/bartek/devel/clang-uml/tests/t20012/t20012.cc:86:9) &&) - + r() - + operator()() - + c() - + cc() - + diff --git a/docs/test_cases/t20012_sequence_mermaid.svg b/docs/test_cases/t20012_sequence_mermaid.svg new file mode 100644 index 00000000..153b3b84 --- /dev/null +++ b/docs/test_cases/t20012_sequence_mermaid.svg @@ -0,0 +1,291 @@ + + + + + tmain()::(lambda ../../tests/t20012/t20012.cc:86:9) + + + + + + R<R::(lambda ../../tests/t20012/t20012.cc:86:9)> + + + + + + C + + + + + + tmain()::(lambda ../../tests/t20012/t20012.cc:80:20) + + + + + + B + + + + + + A + + + + + + tmain()::(lambda ../../tests/t20012/t20012.cc:67:20) + + + + + + tmain() + + + + + + + + tmain()::(lambda ../../tests/t20012/t20012.cc:86:9) + + + + + + + + + R<R::(lambda ../../tests/t20012/t20012.cc:86:9)> + + + + + + + + + C + + + + + + + + + tmain()::(lambda ../../tests/t20012/t20012.cc:80:20) + + + + + + + + + B + + + + + + + + + A + + + + + + + + + tmain()::(lambda ../../tests/t20012/t20012.cc:67:20) + + + + + + + + + tmain() + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + operator()() + + a() + + aa() + + aaa() + + b() + + bb() + + bbb() + + + + operator()() + + c() + + cc() + + ccc() + + operator()() + + a() + + aa() + + aaa() + + b() + + bb() + + bbb() + + + + + + R((lambda at /home/bartek/devel/clang-uml/tests/t20012/t20012.cc:86:9) &&) + + r() + + operator()() + + c() + + cc() + + ccc() + + + + diff --git a/docs/test_cases/t20013.md b/docs/test_cases/t20013.md index f5ac0dc6..ac6f5c3e 100644 --- a/docs/test_cases/t20013.md +++ b/docs/test_cases/t20013.md @@ -47,15 +47,17 @@ void tmain(int argc, char **argv) } } ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t20013_sequence](./t20013_sequence.svg "Function and method arguments in sequence diagrams test case") +## Generated Mermaid diagrams +![t20013_sequence](./t20013_sequence_mermaid.svg "Function and method arguments in sequence diagrams test case") ## Generated JSON models ```json { "diagram_type": "sequence", "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t20013_sequence", diff --git a/docs/test_cases/t20013_sequence.svg b/docs/test_cases/t20013_sequence.svg index 5468e948..e2d0bf59 100644 --- a/docs/test_cases/t20013_sequence.svg +++ b/docs/test_cases/t20013_sequence.svg @@ -1,6 +1,6 @@ - + @@ -9,47 +9,47 @@ - - - - - - - + + + + + + + - - + + tmain(int,char **) - + tmain(int,char **) - - + + B - + B - - + + A - + A - - - - - - - - + + + + + + + + b(int) - + a1(int) @@ -58,12 +58,12 @@ - + b(double) - + a2(double) @@ -72,12 +72,12 @@ - + b(const char *) - + a3(const char *) diff --git a/docs/test_cases/t20013_sequence_mermaid.svg b/docs/test_cases/t20013_sequence_mermaid.svg new file mode 100644 index 00000000..06076e9a --- /dev/null +++ b/docs/test_cases/t20013_sequence_mermaid.svg @@ -0,0 +1,130 @@ + + + + + A + + + + + + B + + + + + + tmain(int,char **) + + + + + + + + A + + + + + + + + + B + + + + + + + + + tmain(int,char **) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + b(int) + + a1(int) + + + + + + b(double) + + a2(double) + + + + + + b(const char *) + + a3(const char *) + + + + + + diff --git a/docs/test_cases/t20014.md b/docs/test_cases/t20014.md index 6beb752b..1e6dd4bd 100644 --- a/docs/test_cases/t20014.md +++ b/docs/test_cases/t20014.md @@ -82,15 +82,17 @@ namespace t20014 { } } ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t20014_sequence](./t20014_sequence.svg "Multiple translation units sequence diagram test case") +## Generated Mermaid diagrams +![t20014_sequence](./t20014_sequence_mermaid.svg "Multiple translation units sequence diagram test case") ## Generated JSON models ```json { "diagram_type": "sequence", "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t20014_sequence", diff --git a/docs/test_cases/t20014_sequence.svg b/docs/test_cases/t20014_sequence.svg index 22ac1fdb..915a1ef4 100644 --- a/docs/test_cases/t20014_sequence.svg +++ b/docs/test_cases/t20014_sequence.svg @@ -1,6 +1,6 @@ - + @@ -9,56 +9,56 @@ - - - - - - - - + + + + + + + + - - + + tmain() - + tmain() - - + + B - + B - - + + A - + A - - + + C<B,int> - + C<B,int> - - - - - - - - - + + + + + + + + + b1(int,int) - + a1(int,int) @@ -67,12 +67,12 @@ - + b2(int,int) - + a2(int,int) @@ -81,17 +81,17 @@ - + c1(int,int) - + b1(int,int) - + a1(int,int) diff --git a/docs/test_cases/t20014_sequence_mermaid.svg b/docs/test_cases/t20014_sequence_mermaid.svg new file mode 100644 index 00000000..96fa12c5 --- /dev/null +++ b/docs/test_cases/t20014_sequence_mermaid.svg @@ -0,0 +1,152 @@ + + + + + C<B,int> + + + + + + A + + + + + + B + + + + + + tmain() + + + + + + + + C<B,int> + + + + + + + + + A + + + + + + + + + B + + + + + + + + + tmain() + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + b1(int,int) + + a1(int,int) + + + + + + b2(int,int) + + a2(int,int) + + + + + + c1(int,int) + + b1(int,int) + + a1(int,int) + + + + + + + + diff --git a/docs/test_cases/t20015.md b/docs/test_cases/t20015.md index 95567135..ad9c62fb 100644 --- a/docs/test_cases/t20015.md +++ b/docs/test_cases/t20015.md @@ -63,15 +63,17 @@ void tmain() } } ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t20015_sequence](./t20015_sequence.svg "Class exclusion by namespace in sequence diagram test case") +## Generated Mermaid diagrams +![t20015_sequence](./t20015_sequence_mermaid.svg "Class exclusion by namespace in sequence diagram test case") ## Generated JSON models ```json { "diagram_type": "sequence", "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t20015_sequence", diff --git a/docs/test_cases/t20015_sequence.svg b/docs/test_cases/t20015_sequence.svg index e86e1b3e..207eded8 100644 --- a/docs/test_cases/t20015_sequence.svg +++ b/docs/test_cases/t20015_sequence.svg @@ -1,6 +1,6 @@ - + @@ -9,25 +9,25 @@ - - + + - - + + tmain() - + tmain() - - + + B - + B - - - + + + setup_a(std::shared_ptr<detail::A> &) diff --git a/docs/test_cases/t20015_sequence_mermaid.svg b/docs/test_cases/t20015_sequence_mermaid.svg new file mode 100644 index 00000000..6091c2ba --- /dev/null +++ b/docs/test_cases/t20015_sequence_mermaid.svg @@ -0,0 +1,78 @@ + + + + + B + + + + + + tmain() + + + + + + + + B + + + + + + + + + tmain() + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + setup_a(std::shared_ptr<detail::A> &) + + diff --git a/docs/test_cases/t20016.md b/docs/test_cases/t20016.md index adc8285d..ed19dbf0 100644 --- a/docs/test_cases/t20016.md +++ b/docs/test_cases/t20016.md @@ -45,15 +45,17 @@ void tmain() } } ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t20016_sequence](./t20016_sequence.svg "Template method specialization sequence diagram test case") +## Generated Mermaid diagrams +![t20016_sequence](./t20016_sequence_mermaid.svg "Template method specialization sequence diagram test case") ## Generated JSON models ```json { "diagram_type": "sequence", "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t20016_sequence", diff --git a/docs/test_cases/t20016_sequence.svg b/docs/test_cases/t20016_sequence.svg index 7d1498ea..7b3e03b3 100644 --- a/docs/test_cases/t20016_sequence.svg +++ b/docs/test_cases/t20016_sequence.svg @@ -1,6 +1,6 @@ - + @@ -9,53 +9,53 @@ - - - - - + + + + + - - + + tmain() - + tmain() - - + + B<long> - + B<long> - - + + A - + A - - - - - - + + + + + + b1(long) - + a1(int) - + b2(long) - + a2(const long &) diff --git a/docs/test_cases/t20016_sequence_mermaid.svg b/docs/test_cases/t20016_sequence_mermaid.svg new file mode 100644 index 00000000..d3ae9e04 --- /dev/null +++ b/docs/test_cases/t20016_sequence_mermaid.svg @@ -0,0 +1,112 @@ + + + + + A + + + + + + B<long> + + + + + + tmain() + + + + + + + + A + + + + + + + + + B<long> + + + + + + + + + tmain() + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + b1(long) + + a1(int) + + b2(long) + + a2(const long &) + + + + + + diff --git a/docs/test_cases/t20017.md b/docs/test_cases/t20017.md index d48751c7..0ecd9cc0 100644 --- a/docs/test_cases/t20017.md +++ b/docs/test_cases/t20017.md @@ -42,15 +42,17 @@ int tmain() { return b2(a1(a2(a3(1, 2), b1(3, 4)), 5), 6); } } } ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t20017_sequence](./t20017_sequence.svg "Test case for combine_free_functions_into_file_participants option") +## Generated Mermaid diagrams +![t20017_sequence](./t20017_sequence_mermaid.svg "Test case for combine_free_functions_into_file_participants option") ## Generated JSON models ```json { "diagram_type": "sequence", "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t20017_sequence", diff --git a/docs/test_cases/t20017_sequence.svg b/docs/test_cases/t20017_sequence.svg index 7486bd8e..c0570a73 100644 --- a/docs/test_cases/t20017_sequence.svg +++ b/docs/test_cases/t20017_sequence.svg @@ -1,6 +1,6 @@ - + @@ -9,65 +9,65 @@ - - - - - - + + + + + + - + t20017.cc - + t20017.cc - + include/t20017_a.h - + include/t20017_a.h - + include/t20017_b.h - + include/t20017_b.h - - - - - - + + + + + + tmain() - + a3(int,int) - + b1(int,int) - + a2(int,int) - + a1(int,int) - + b2<int>(int,int) diff --git a/docs/test_cases/t20017_sequence_mermaid.svg b/docs/test_cases/t20017_sequence_mermaid.svg new file mode 100644 index 00000000..5e91be23 --- /dev/null +++ b/docs/test_cases/t20017_sequence_mermaid.svg @@ -0,0 +1,142 @@ + + + + + include/t20017_b.h + + + + + + include/t20017_a.h + + + + + + * + + + + + + t20017.cc + + + + + + + + include/t20017_b.h + + + + + + + + + include/t20017_a.h + + + + + + + + + * + + + + + + + + + t20017.cc + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + tmain() + + a3(int,int) + + + + b1(int,int) + + + + a2(int,int) + + + + a1(int,int) + + + + b2<int>(int,int) + + + + + + diff --git a/docs/test_cases/t20018.md b/docs/test_cases/t20018.md index 056d985c..2aae965a 100644 --- a/docs/test_cases/t20018.md +++ b/docs/test_cases/t20018.md @@ -47,15 +47,17 @@ void tmain() { Answer>::print(); } } } ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t20018_sequence](./t20018_sequence.svg "Recursive template sequence diagram test case") +## Generated Mermaid diagrams +![t20018_sequence](./t20018_sequence_mermaid.svg "Recursive template sequence diagram test case") ## Generated JSON models ```json { "diagram_type": "sequence", "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t20018_sequence", diff --git a/docs/test_cases/t20018_sequence.svg b/docs/test_cases/t20018_sequence.svg index 9941c9b9..a034ab19 100644 --- a/docs/test_cases/t20018_sequence.svg +++ b/docs/test_cases/t20018_sequence.svg @@ -1,6 +1,6 @@ - + @@ -9,14 +9,14 @@ - - - - - - - - + + + + + + + + @@ -25,93 +25,93 @@ - - + + tmain() - + tmain() - - + + Answer<Factorial<5>,120> - + Answer<Factorial<5>,120> - - + + Factorial<5> - + Factorial<5> - - + + Factorial<4> - + Factorial<4> - - + + Factorial<3> - + Factorial<3> - - + + Factorial<2> - + Factorial<2> - - + + Factorial<1> - + Factorial<1> - - + + Factorial<0> - + Factorial<0> - - - - - - - - - + + + + + + + + + print() - + print(int) - + print(int) - + print(int) - + print(int) - + print(int) - + print(int) diff --git a/docs/test_cases/t20018_sequence_mermaid.svg b/docs/test_cases/t20018_sequence_mermaid.svg new file mode 100644 index 00000000..ce997fae --- /dev/null +++ b/docs/test_cases/t20018_sequence_mermaid.svg @@ -0,0 +1,198 @@ + + + + + Factorial<0> + + + + + + Factorial<1> + + + + + + Factorial<2> + + + + + + Factorial<3> + + + + + + Factorial<4> + + + + + + Factorial<5> + + + + + + Answer<Factorial<5>,120> + + + + + + tmain() + + + + + + + + Factorial<0> + + + + + + + + + Factorial<1> + + + + + + + + + Factorial<2> + + + + + + + + + Factorial<3> + + + + + + + + + Factorial<4> + + + + + + + + + Factorial<5> + + + + + + + + + Answer<Factorial<5>,120> + + + + + + + + + tmain() + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + print() + + print(int) + + print(int) + + print(int) + + print(int) + + print(int) + + print(int) + + diff --git a/docs/test_cases/t20019.md b/docs/test_cases/t20019.md index b2abaa3b..3333bd68 100644 --- a/docs/test_cases/t20019.md +++ b/docs/test_cases/t20019.md @@ -54,15 +54,17 @@ void tmain() } } ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t20019_sequence](./t20019_sequence.svg "Curiously Recurring Template Pattern sequence diagram test case") +## Generated Mermaid diagrams +![t20019_sequence](./t20019_sequence_mermaid.svg "Curiously Recurring Template Pattern sequence diagram test case") ## Generated JSON models ```json { "diagram_type": "sequence", "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t20019_sequence", diff --git a/docs/test_cases/t20019_sequence.svg b/docs/test_cases/t20019_sequence.svg index 5ea04584..be973318 100644 --- a/docs/test_cases/t20019_sequence.svg +++ b/docs/test_cases/t20019_sequence.svg @@ -1,6 +1,6 @@ - + @@ -9,95 +9,95 @@ - - - - - - - - - + + + + + + + + + - - + + tmain() - + tmain() - - + + Base<D1> - + Base<D1> - - + + D1 - + D1 - - + + Base<D2> - + Base<D2> - - + + D2 - + D2 - - - - - - - - - - + + + + + + + + + + name() - + impl() - + name() - + impl() - + name() - + impl() - + name() - + impl() diff --git a/docs/test_cases/t20019_sequence_mermaid.svg b/docs/test_cases/t20019_sequence_mermaid.svg new file mode 100644 index 00000000..a03fda27 --- /dev/null +++ b/docs/test_cases/t20019_sequence_mermaid.svg @@ -0,0 +1,158 @@ + + + + + D2 + + + + + + Base<D2> + + + + + + D1 + + + + + + Base<D1> + + + + + + tmain() + + + + + + + + D2 + + + + + + + + + Base<D2> + + + + + + + + + D1 + + + + + + + + + Base<D1> + + + + + + + + + tmain() + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + name() + + impl() + + name() + + impl() + + name() + + impl() + + name() + + impl() + + diff --git a/docs/test_cases/t20020.md b/docs/test_cases/t20020.md index 770ea4a1..d646cfb8 100644 --- a/docs/test_cases/t20020.md +++ b/docs/test_cases/t20020.md @@ -110,15 +110,17 @@ int tmain() } } ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t20020_sequence](./t20020_sequence.svg "If statement sequence diagram test case") +## Generated Mermaid diagrams +![t20020_sequence](./t20020_sequence_mermaid.svg "If statement sequence diagram test case") ## Generated JSON models ```json { "diagram_type": "sequence", "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t20020_sequence", diff --git a/docs/test_cases/t20020_sequence.svg b/docs/test_cases/t20020_sequence.svg index e038970f..d0765161 100644 --- a/docs/test_cases/t20020_sequence.svg +++ b/docs/test_cases/t20020_sequence.svg @@ -1,6 +1,6 @@ - + @@ -9,82 +9,82 @@ - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - + - - - + + + - - + + tmain() - + tmain() - - + + A - + A - - + + C - + C - - + + B - + B - - + + D<int> - + D<int> - - - - - - - - - - - - - - + + + + + + + + + + + + + + alt - + a1() @@ -92,7 +92,7 @@ - + a5() @@ -103,7 +103,7 @@ alt - + [ @@ -112,7 +112,7 @@ - + [ @@ -121,7 +121,7 @@ - + b1() @@ -129,7 +129,7 @@ - + [ @@ -138,7 +138,7 @@ - + b2() @@ -146,14 +146,14 @@ - + a4() - + log() @@ -161,7 +161,7 @@ alt - + c1() const @@ -169,7 +169,7 @@ alt - + @@ -182,7 +182,7 @@ - + @@ -192,7 +192,7 @@ alt - + d1(int,int) diff --git a/docs/test_cases/t20020_sequence_mermaid.svg b/docs/test_cases/t20020_sequence_mermaid.svg new file mode 100644 index 00000000..bd77292b --- /dev/null +++ b/docs/test_cases/t20020_sequence_mermaid.svg @@ -0,0 +1,262 @@ + + + + + D<int> + + + + + + B + + + + + + C + + + + + + A + + + + + + tmain() + + + + + + + + D<int> + + + + + + + + + B + + + + + + + + + C + + + + + + + + + A + + + + + + + + + tmain() + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + alt + + + + + + + + + + + + + + + + + alt + + + + + + + + + + + + + + + + + + + + + + + alt + + + + + + + + + + + alt + + + + + + + + + + + + + + alt + + + + + a1() + + + + a5() + + + + [a2()] + + + + [c3(int)] + + + + b1() + + + + [a3()] + + + + b2() + + + + a4() + + + + log() + + c1() const + + [c2() const] + + + + log() const + + d1(int,int) + + + + diff --git a/docs/test_cases/t20021.md b/docs/test_cases/t20021.md index bcfd778f..afe52587 100644 --- a/docs/test_cases/t20021.md +++ b/docs/test_cases/t20021.md @@ -77,15 +77,17 @@ int tmain() } } ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t20021_sequence](./t20021_sequence.svg "Loop statements sequence diagram test case") +## Generated Mermaid diagrams +![t20021_sequence](./t20021_sequence_mermaid.svg "Loop statements sequence diagram test case") ## Generated JSON models ```json { "diagram_type": "sequence", "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t20021_sequence", diff --git a/docs/test_cases/t20021_sequence.svg b/docs/test_cases/t20021_sequence.svg index 3f654d8c..62088109 100644 --- a/docs/test_cases/t20021_sequence.svg +++ b/docs/test_cases/t20021_sequence.svg @@ -1,6 +1,6 @@ - + @@ -9,74 +9,74 @@ - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - + + tmain() - + tmain() - - + + C - + C - - + + A - + A - - + + B - + B - - - - - - - - - - - - + + + + + + + + + + + + loop - + [ c4() ] - + @@ -89,7 +89,7 @@ - + a3() @@ -102,7 +102,7 @@ loop - + [ @@ -111,7 +111,7 @@ - + [ @@ -120,7 +120,7 @@ - + [ @@ -129,14 +129,14 @@ - + a1() - + [ @@ -148,7 +148,7 @@ loop - + b2() const @@ -158,7 +158,7 @@ loop - + [ @@ -167,7 +167,7 @@ - + b2() const diff --git a/docs/test_cases/t20021_sequence_mermaid.svg b/docs/test_cases/t20021_sequence_mermaid.svg new file mode 100644 index 00000000..b1eab8f0 --- /dev/null +++ b/docs/test_cases/t20021_sequence_mermaid.svg @@ -0,0 +1,235 @@ + + + + + B + + + + + + A + + + + + + C + + + + + + tmain() + + + + + + + + B + + + + + + + + + A + + + + + + + + + C + + + + + + + + + tmain() + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + loop + + + + + + + + + + + + + + loop + + + + + + + + + + + loop + + + + + + + + + + + + + + loop + + + + + + + + + + + + + + loop + + + + + + + + [c4()] + + c5() + + + + + + a3() + + + + [a2()] + + + + [c1()] + + + + [c2()] + + + + a1() + + + + [c3()] + + + + b2() const + + + + [contents()] + + + + b2() const + + + + diff --git a/docs/test_cases/t20022.md b/docs/test_cases/t20022.md index 9412e454..ad679896 100644 --- a/docs/test_cases/t20022.md +++ b/docs/test_cases/t20022.md @@ -57,15 +57,17 @@ int tmain() } } ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t20022_sequence](./t20022_sequence.svg "Forward class declaration sequence diagram test case") +## Generated Mermaid diagrams +![t20022_sequence](./t20022_sequence_mermaid.svg "Forward class declaration sequence diagram test case") ## Generated JSON models ```json { "diagram_type": "sequence", "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t20022_sequence", diff --git a/docs/test_cases/t20022_sequence.svg b/docs/test_cases/t20022_sequence.svg index 615f198a..770c0b7d 100644 --- a/docs/test_cases/t20022_sequence.svg +++ b/docs/test_cases/t20022_sequence.svg @@ -1,6 +1,6 @@ - + @@ -9,47 +9,47 @@ - - - - + + + + - - + + tmain() - + tmain() - - + + A - + A - - + + B - + B - - - - - + + + + + A(std::unique_ptr ) - + a() - + b() diff --git a/docs/test_cases/t20022_sequence_mermaid.svg b/docs/test_cases/t20022_sequence_mermaid.svg new file mode 100644 index 00000000..9baa294f --- /dev/null +++ b/docs/test_cases/t20022_sequence_mermaid.svg @@ -0,0 +1,103 @@ + + + + + B + + + + + + A + + + + + + tmain() + + + + + + + + B + + + + + + + + + A + + + + + + + + + tmain() + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A(std::unique_ptr<B>) + + a() + + b() + + diff --git a/docs/test_cases/t20023.md b/docs/test_cases/t20023.md index a7b60c0f..a336c8e5 100644 --- a/docs/test_cases/t20023.md +++ b/docs/test_cases/t20023.md @@ -60,15 +60,17 @@ int tmain() } } ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t20023_sequence](./t20023_sequence.svg "Try/catch statement sequence diagram test case") +## Generated Mermaid diagrams +![t20023_sequence](./t20023_sequence_mermaid.svg "Try/catch statement sequence diagram test case") ## Generated JSON models ```json { "diagram_type": "sequence", "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t20023_sequence", diff --git a/docs/test_cases/t20023_sequence.svg b/docs/test_cases/t20023_sequence.svg index f0a654e7..dce29435 100644 --- a/docs/test_cases/t20023_sequence.svg +++ b/docs/test_cases/t20023_sequence.svg @@ -1,6 +1,6 @@ - + @@ -9,37 +9,37 @@ - - - - - - - + + + + + + + - - + + tmain() - + tmain() - - + + A - + A - - - - - - - + + + + + + + a() @@ -47,7 +47,7 @@ try - + @@ -60,7 +60,7 @@ [std::runtime_error &] - + @@ -73,7 +73,7 @@ [std::logic_error &] - + @@ -86,7 +86,7 @@ [...] - + diff --git a/docs/test_cases/t20023_sequence_mermaid.svg b/docs/test_cases/t20023_sequence_mermaid.svg new file mode 100644 index 00000000..663706f6 --- /dev/null +++ b/docs/test_cases/t20023_sequence_mermaid.svg @@ -0,0 +1,127 @@ + + + + + A + + + + + + tmain() + + + + + + + + A + + + + + + + + + tmain() + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + critical + + + + [std::runtime- + _error &] + [std::logic_e- + rror &] + [...] + + a() + + a1() + + + + a2() + + + + a3() + + + + a4() + + + + + + diff --git a/docs/test_cases/t20024.md b/docs/test_cases/t20024.md index 83f56170..7f0b4e50 100644 --- a/docs/test_cases/t20024.md +++ b/docs/test_cases/t20024.md @@ -85,15 +85,17 @@ int tmain() } } ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t20024_sequence](./t20024_sequence.svg "Switch statement sequence diagram test case") +## Generated Mermaid diagrams +![t20024_sequence](./t20024_sequence_mermaid.svg "Switch statement sequence diagram test case") ## Generated JSON models ```json { "diagram_type": "sequence", "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t20024_sequence", diff --git a/docs/test_cases/t20024_sequence.svg b/docs/test_cases/t20024_sequence.svg index 3e37100e..4444bb9b 100644 --- a/docs/test_cases/t20024_sequence.svg +++ b/docs/test_cases/t20024_sequence.svg @@ -1,6 +1,6 @@ - + @@ -9,23 +9,23 @@ - - - - - - - - - - - - + + + + + + + + + + + + - + @@ -33,36 +33,36 @@ - - + + tmain() - + tmain() - - + + A - + A - - + + B - + B - - - - - - - - - - - - + + + + + + + + + + + + select(enum_a) @@ -72,7 +72,7 @@ switch [zero] - + @@ -85,7 +85,7 @@ [one] - + @@ -98,7 +98,7 @@ [two] - + @@ -111,7 +111,7 @@ [default] - + @@ -124,7 +124,7 @@ - + select(colors) @@ -134,7 +134,7 @@ switch [enum colors::red] - + @@ -143,7 +143,7 @@ [enum colors::orange] - + @@ -152,7 +152,7 @@ [enum colors::green] - + @@ -161,7 +161,7 @@ [default] - + diff --git a/docs/test_cases/t20024_sequence_mermaid.svg b/docs/test_cases/t20024_sequence_mermaid.svg new file mode 100644 index 00000000..4700dffe --- /dev/null +++ b/docs/test_cases/t20024_sequence_mermaid.svg @@ -0,0 +1,191 @@ + + + + + B + + + + + + A + + + + + + tmain() + + + + + + + + B + + + + + + + + + A + + + + + + + + + tmain() + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + alt + + + + [zero] + [one] + [two] + [default] + + + + + + + + + + + + + + + + + + + + + + + + + + + alt + + + + [enum + colors::red] + [enum + colors::orang- + e] + [enum + colors::green- + ] + [default] + + select(enum_a) + + a0() + + + + a1() + + + + a2() + + + + a3() + + + + + + select(colors) + + red() + + orange() + + green() + + grey() + + diff --git a/docs/test_cases/t20025.md b/docs/test_cases/t20025.md index 5fb534a7..af41e7c6 100644 --- a/docs/test_cases/t20025.md +++ b/docs/test_cases/t20025.md @@ -65,15 +65,17 @@ int tmain() } } ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t20025_sequence](./t20025_sequence.svg "Skip decorator sequence diagram test case") +## Generated Mermaid diagrams +![t20025_sequence](./t20025_sequence_mermaid.svg "Skip decorator sequence diagram test case") ## Generated JSON models ```json { "diagram_type": "sequence", "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t20025_sequence", diff --git a/docs/test_cases/t20025_sequence.svg b/docs/test_cases/t20025_sequence.svg index 2757cdc5..fe392bee 100644 --- a/docs/test_cases/t20025_sequence.svg +++ b/docs/test_cases/t20025_sequence.svg @@ -1,6 +1,6 @@ - + @@ -9,41 +9,41 @@ - - - - + + + + - - + + tmain() - + tmain() - - + + A - + A - - + + add(int,int) - + add(int,int) - - - - - + + + + + a() - + @@ -52,7 +52,7 @@ - + diff --git a/docs/test_cases/t20025_sequence_mermaid.svg b/docs/test_cases/t20025_sequence_mermaid.svg new file mode 100644 index 00000000..0516f053 --- /dev/null +++ b/docs/test_cases/t20025_sequence_mermaid.svg @@ -0,0 +1,107 @@ + + + + + add(int,int) + + + + + + A + + + + + + tmain() + + + + + + + + add(int,int) + + + + + + + + + A + + + + + + + + + tmain() + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + a() + + a2() + + + + + + + + diff --git a/docs/test_cases/t20026.md b/docs/test_cases/t20026.md index 4c0397df..addb62f8 100644 --- a/docs/test_cases/t20026.md +++ b/docs/test_cases/t20026.md @@ -45,15 +45,17 @@ int tmain() } } ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t20026_sequence](./t20026_sequence.svg "Virtual method call sequence diagram test case") +## Generated Mermaid diagrams +![t20026_sequence](./t20026_sequence_mermaid.svg "Virtual method call sequence diagram test case") ## Generated JSON models ```json { "diagram_type": "sequence", "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t20026_sequence", diff --git a/docs/test_cases/t20026_sequence.svg b/docs/test_cases/t20026_sequence.svg index bc3970c4..cc58a4e8 100644 --- a/docs/test_cases/t20026_sequence.svg +++ b/docs/test_cases/t20026_sequence.svg @@ -1,6 +1,6 @@ - + @@ -9,25 +9,25 @@ - - + + - - + + tmain() - + tmain() - - + + A - + A - - - + + + a() diff --git a/docs/test_cases/t20026_sequence_mermaid.svg b/docs/test_cases/t20026_sequence_mermaid.svg new file mode 100644 index 00000000..49209c1b --- /dev/null +++ b/docs/test_cases/t20026_sequence_mermaid.svg @@ -0,0 +1,78 @@ + + + + + A + + + + + + tmain() + + + + + + + + A + + + + + + + + + tmain() + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + a() + + diff --git a/docs/test_cases/t20027.md b/docs/test_cases/t20027.md index fd7ef6bf..8ed41e17 100644 --- a/docs/test_cases/t20027.md +++ b/docs/test_cases/t20027.md @@ -44,15 +44,17 @@ void tmain() } } ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t20027_sequence](./t20027_sequence.svg "Filter call expressions based on access test case") +## Generated Mermaid diagrams +![t20027_sequence](./t20027_sequence_mermaid.svg "Filter call expressions based on access test case") ## Generated JSON models ```json { "diagram_type": "sequence", "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t20027_sequence", diff --git a/docs/test_cases/t20027_sequence.svg b/docs/test_cases/t20027_sequence.svg index 34bb8b7c..7e27e86c 100644 --- a/docs/test_cases/t20027_sequence.svg +++ b/docs/test_cases/t20027_sequence.svg @@ -1,6 +1,6 @@ - + @@ -9,25 +9,25 @@ - - + + - - + + tmain() - + tmain() - - + + A - + A - - - + + + a() diff --git a/docs/test_cases/t20027_sequence_mermaid.svg b/docs/test_cases/t20027_sequence_mermaid.svg new file mode 100644 index 00000000..49209c1b --- /dev/null +++ b/docs/test_cases/t20027_sequence_mermaid.svg @@ -0,0 +1,78 @@ + + + + + A + + + + + + tmain() + + + + + + + + A + + + + + + + + + tmain() + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + a() + + diff --git a/docs/test_cases/t20028.md b/docs/test_cases/t20028.md index e89c4a2b..da9c342c 100644 --- a/docs/test_cases/t20028.md +++ b/docs/test_cases/t20028.md @@ -54,15 +54,17 @@ int tmain() } } ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t20028_sequence](./t20028_sequence.svg "Conditional (ternary) '?:' operator test case") +## Generated Mermaid diagrams +![t20028_sequence](./t20028_sequence_mermaid.svg "Conditional (ternary) '?:' operator test case") ## Generated JSON models ```json { "diagram_type": "sequence", "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t20028_sequence", diff --git a/docs/test_cases/t20028_sequence.svg b/docs/test_cases/t20028_sequence.svg index d4e2f872..01f07481 100644 --- a/docs/test_cases/t20028_sequence.svg +++ b/docs/test_cases/t20028_sequence.svg @@ -1,6 +1,6 @@ - + @@ -9,36 +9,36 @@ - - - - - - + + + + + + - - + + tmain() - + tmain() - - + + A - + A - - - - - + + + + + alt - + [ @@ -47,14 +47,14 @@ - + b() - + c() @@ -62,7 +62,7 @@ - + d() diff --git a/docs/test_cases/t20028_sequence_mermaid.svg b/docs/test_cases/t20028_sequence_mermaid.svg new file mode 100644 index 00000000..bccc74c7 --- /dev/null +++ b/docs/test_cases/t20028_sequence_mermaid.svg @@ -0,0 +1,113 @@ + + + + + A + + + + + + tmain() + + + + + + + + A + + + + + + + + + tmain() + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + alt + + + + + [a()] + + + + b() + + + + c() + + + + d() + + + + diff --git a/docs/test_cases/t20029.md b/docs/test_cases/t20029.md index 7d2ab56a..a752cfec 100644 --- a/docs/test_cases/t20029.md +++ b/docs/test_cases/t20029.md @@ -98,15 +98,17 @@ int tmain() } } ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t20029_sequence](./t20029_sequence.svg "Combined feature sequence diagram test case") +## Generated Mermaid diagrams +![t20029_sequence](./t20029_sequence_mermaid.svg "Combined feature sequence diagram test case") ## Generated JSON models ```json { "diagram_type": "sequence", "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t20029_sequence", diff --git a/docs/test_cases/t20029_sequence.svg b/docs/test_cases/t20029_sequence.svg index 8a3ae390..7d01b14d 100644 --- a/docs/test_cases/t20029_sequence.svg +++ b/docs/test_cases/t20029_sequence.svg @@ -1,6 +1,6 @@ - + @@ -9,60 +9,60 @@ - - - - - - - - - - - + + + + + + + + + + + - - + + tmain() - + tmain() - - + + Encoder<Retrier<ConnectionPool>> - + Encoder<Retrier<ConnectionPool>> - - + + Retrier<ConnectionPool> - + Retrier<ConnectionPool> - - + + ConnectionPool - + ConnectionPool - - + + encode_b64(std::string &&) - + encode_b64(std::string &&) - - - - - - - - + + + + + + + + connect() @@ -73,21 +73,21 @@ alt - + [ send(std::string &&) ] - + encode(std::string &&) - + @@ -97,7 +97,7 @@ - + send(std::string &&) @@ -108,7 +108,7 @@ alt - + [ diff --git a/docs/test_cases/t20029_sequence_mermaid.svg b/docs/test_cases/t20029_sequence_mermaid.svg new file mode 100644 index 00000000..1770faf7 --- /dev/null +++ b/docs/test_cases/t20029_sequence_mermaid.svg @@ -0,0 +1,202 @@ + + + + + encode_b64(std::string &&) + + + + + + ConnectionPool + + + + + + Retrier<ConnectionPool> + + + + + + Encoder<Retrier<ConnectionPool>> + + + + + + tmain() + + + + + + + + encode_b64(std::string &&) + + + + + + + + + ConnectionPool + + + + + + + + + Retrier<ConnectionPool> + + + + + + + + + Encoder<Retrier<ConnectionPool>> + + + + + + + + + tmain() + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + alt + + + + + + + + + + + loop + + + + + + + + + + + alt + + + + + + + + + + + loop + + + + + connect() + + [send(std::string &&)] + + encode(std::string &&) + + + + + + + + send(std::string &&) + + [send(const std::string &)] + + + + + + + + diff --git a/docs/test_cases/t20030.md b/docs/test_cases/t20030.md index f6c9be4a..7a6c45ee 100644 --- a/docs/test_cases/t20030.md +++ b/docs/test_cases/t20030.md @@ -72,15 +72,17 @@ int tmain(bool f, int a) } } ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t20030_sequence](./t20030_sequence.svg "Constructor and operator call test case") +## Generated Mermaid diagrams +![t20030_sequence](./t20030_sequence_mermaid.svg "Constructor and operator call test case") ## Generated JSON models ```json { "diagram_type": "sequence", "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t20030_sequence", @@ -187,7 +189,7 @@ int tmain(bool f, int a) "participant_name": "clanguml::t20030::tmain(int)" }, "name": "operator+=(int)", - "return_type": "clanguml::t20030::A &", + "return_type": "A &", "scope": "normal", "source_location": { "column": 5, @@ -308,7 +310,7 @@ int tmain(bool f, int a) "participant_name": "clanguml::t20030::tmain(bool,int)" }, "name": "operator+=(int)", - "return_type": "clanguml::t20030::A &", + "return_type": "A &", "scope": "normal", "source_location": { "column": 5, @@ -353,7 +355,7 @@ int tmain(bool f, int a) "participant_name": "clanguml::t20030::tmain(bool,int)" }, "name": "operator=(const A &)", - "return_type": "clanguml::t20030::A &", + "return_type": "A &", "scope": "normal", "source_location": { "column": 5, diff --git a/docs/test_cases/t20030_sequence.svg b/docs/test_cases/t20030_sequence.svg index d636e258..965125e2 100644 --- a/docs/test_cases/t20030_sequence.svg +++ b/docs/test_cases/t20030_sequence.svg @@ -1,6 +1,6 @@ - + @@ -9,81 +9,81 @@ - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - + + tmain(int) - + tmain(int) - - + + magic() - + magic() - - + + A - + A - - + + tmain(bool,int) - + tmain(bool,int) - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - + A(int) - + operator+=(int) - + @@ -92,36 +92,36 @@ - + A() - + create() - + A() - + create() - + operator+=(int) - + @@ -130,12 +130,12 @@ - + operator=(const A &) - + @@ -144,7 +144,7 @@ - + value() const diff --git a/docs/test_cases/t20030_sequence_mermaid.svg b/docs/test_cases/t20030_sequence_mermaid.svg new file mode 100644 index 00000000..42b85e10 --- /dev/null +++ b/docs/test_cases/t20030_sequence_mermaid.svg @@ -0,0 +1,181 @@ + + + + + tmain(bool,int) + + + + + + A + + + + + + magic() + + + + + + tmain(int) + + + + + + + + tmain(bool,int) + + + + + + + + + A + + + + + + + + + magic() + + + + + + + + + tmain(int) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A(int) + + operator+=(int) + + add(int) + + + + A() + + create() + + A() + + create() + + operator+=(int) + + add(int) + + + + operator=(const A &) + + set(int) + + + + value() const + + + + diff --git a/docs/test_cases/t20031.md b/docs/test_cases/t20031.md index 5ee55c41..1f44c5c6 100644 --- a/docs/test_cases/t20031.md +++ b/docs/test_cases/t20031.md @@ -88,15 +88,17 @@ int tmain(bool f, int a) } } ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t20031_sequence](./t20031_sequence.svg "Callee type sequence diagram filter test case") +## Generated Mermaid diagrams +![t20031_sequence](./t20031_sequence_mermaid.svg "Callee type sequence diagram filter test case") ## Generated JSON models ```json { "diagram_type": "sequence", "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t20031_sequence", diff --git a/docs/test_cases/t20031_sequence.svg b/docs/test_cases/t20031_sequence.svg index 545558e5..94405af3 100644 --- a/docs/test_cases/t20031_sequence.svg +++ b/docs/test_cases/t20031_sequence.svg @@ -1,6 +1,6 @@ - + @@ -9,64 +9,64 @@ - - - - - + + + + + - - + + tmain(int) - + tmain(int) - - + + magic() - + magic() - - + + tmain(bool,int) - + tmain(bool,int) - - + + execute(std::function<int ()>) - + execute(std::function<int ()>) - - + + A - + A - - - - - - + + + + + + - + - + value() const diff --git a/docs/test_cases/t20031_sequence_mermaid.svg b/docs/test_cases/t20031_sequence_mermaid.svg new file mode 100644 index 00000000..481ab8ce --- /dev/null +++ b/docs/test_cases/t20031_sequence_mermaid.svg @@ -0,0 +1,142 @@ + + + + + A + + + + + + execute(std::function<int ()>) + + + + + + tmain(bool,int) + + + + + + magic() + + + + + + tmain(int) + + + + + + + + A + + + + + + + + + execute(std::function<int ()>) + + + + + + + + + tmain(bool,int) + + + + + + + + + magic() + + + + + + + + + tmain(int) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + value() const + + + + diff --git a/docs/test_cases/t20032.md b/docs/test_cases/t20032.md index 9acdcd66..f68ef59a 100644 --- a/docs/test_cases/t20032.md +++ b/docs/test_cases/t20032.md @@ -48,15 +48,17 @@ void tmain(int argc, char **argv) } } ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t20032_sequence](./t20032_sequence.svg "Return type generation option sequence diagram test case") +## Generated Mermaid diagrams +![t20032_sequence](./t20032_sequence_mermaid.svg "Return type generation option sequence diagram test case") ## Generated JSON models ```json { "diagram_type": "sequence", "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t20032_sequence", diff --git a/docs/test_cases/t20032_sequence.svg b/docs/test_cases/t20032_sequence.svg index fa734a6e..4b33839c 100644 --- a/docs/test_cases/t20032_sequence.svg +++ b/docs/test_cases/t20032_sequence.svg @@ -1,6 +1,6 @@ - + @@ -9,47 +9,47 @@ - - - - - - - + + + + + + + - - + + tmain(int,char **) - + tmain(int,char **) - - + + B - + B - - + + A - + A - - - - - - - - + + + + + + + + b(int) - + a1(int) @@ -60,12 +60,12 @@ int - + b(double) - + a2(double) @@ -76,12 +76,12 @@ double - + b(const char *) - + a3(const char *) diff --git a/docs/test_cases/t20032_sequence_mermaid.svg b/docs/test_cases/t20032_sequence_mermaid.svg new file mode 100644 index 00000000..31dd5e89 --- /dev/null +++ b/docs/test_cases/t20032_sequence_mermaid.svg @@ -0,0 +1,130 @@ + + + + + A + + + + + + B + + + + + + tmain(int,char **) + + + + + + + + A + + + + + + + + + B + + + + + + + + + tmain(int,char **) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + b(int) + + a1(int) + + int + + int + + b(double) + + a2(double) + + double + + double + + b(const char *) + + a3(const char *) + + const char * + + const char * + + diff --git a/docs/test_cases/t20033.md b/docs/test_cases/t20033.md index 289783cc..b1c0bf36 100644 --- a/docs/test_cases/t20033.md +++ b/docs/test_cases/t20033.md @@ -86,15 +86,17 @@ int tmain() } } ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t20033_sequence](./t20033_sequence.svg "Control statement text in sequence diagram test case") +## Generated Mermaid diagrams +![t20033_sequence](./t20033_sequence_mermaid.svg "Control statement text in sequence diagram test case") ## Generated JSON models ```json { "diagram_type": "sequence", "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t20033_sequence", diff --git a/docs/test_cases/t20033_sequence.svg b/docs/test_cases/t20033_sequence.svg index 1214f325..9bd688b8 100644 --- a/docs/test_cases/t20033_sequence.svg +++ b/docs/test_cases/t20033_sequence.svg @@ -1,6 +1,6 @@ - + @@ -9,73 +9,73 @@ - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - + + + + + - + - - + + tmain() - + tmain() - - + + A - + A - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + alt [false] [reinterpret_cast<uint64_t>(&a) % 100 == 0ULL] - + a1() @@ -84,7 +84,7 @@ [reinterpret_cast<uint64_t>(&a) % 64 == 0ULL] - + a2() @@ -93,7 +93,7 @@ [a.a2() == 2 && a.a3() == 3] - + [ @@ -102,7 +102,7 @@ - + [ @@ -111,7 +111,7 @@ - + a3() @@ -119,7 +119,7 @@ - + a4() @@ -130,7 +130,7 @@ alt [int i = a.a2(); i != 2] - + [ @@ -139,7 +139,7 @@ - + a3() @@ -150,7 +150,7 @@ loop [int i = 0; i < a.a2(); i++] - + [ @@ -159,14 +159,14 @@ - + a3() - + a3() @@ -177,7 +177,7 @@ loop [retry_count--] - + a2() @@ -188,14 +188,14 @@ loop [retry_count++ < a.a3()] - + a4() - + [ @@ -208,7 +208,7 @@ alt [a.a4() % 6] - + [ @@ -222,7 +222,7 @@ loop [ints] - + a4() diff --git a/docs/test_cases/t20033_sequence_mermaid.svg b/docs/test_cases/t20033_sequence_mermaid.svg new file mode 100644 index 00000000..0eb7a5c5 --- /dev/null +++ b/docs/test_cases/t20033_sequence_mermaid.svg @@ -0,0 +1,284 @@ + + + + + A + + + + + + tmain() + + + + + + + + A + + + + + + + + + tmain() + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + alt + + [false] + + [reinterpret_cast<uint6- + 4_t>(&a) % 100 == + 0ULL] + [reinterpret_cast<uint6- + 4_t>(&a) % 64 == + 0ULL] + [a.a2() == 2 && + a.a3() == 3] + + + + + + + + + + + + + + alt + + [int i = a.a2(); + + + i != 2] + + + + + + + + + + + + + + + loop + + [int i = 0; i < + + + a.a2(); i++] + + + + + + + + + + + + + + + loop + + [retry_count--] + + + + + + + + + + + + + + + loop + + [retry_count++ < + + + a.a3()] + + + + + + + + + + + + + alt + + [a.a4() % 6] + + + + + + + + + + + + loop + + [ints] + + + a1() + + + + a2() + + + + [a2()] + + + + [a3()] + + + + a3() + + + + a4() + + + + [a2()] + + + + a3() + + + + [a2()] + + + + a3() + + + + a3() + + + + a2() + + + + a4() + + + + [a3()] + + + + [a4()] + + + + a4() + + + + diff --git a/docs/test_cases/t20034.md b/docs/test_cases/t20034.md index 3f779b2b..5ab64a79 100644 --- a/docs/test_cases/t20034.md +++ b/docs/test_cases/t20034.md @@ -92,15 +92,17 @@ void B::b4() } } ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t20034_sequence](./t20034_sequence.svg "Test case for rendering all call chains from one activity to another (from_to)") +## Generated Mermaid diagrams +![t20034_sequence](./t20034_sequence_mermaid.svg "Test case for rendering all call chains from one activity to another (from_to)") ## Generated JSON models ```json { "diagram_type": "sequence", "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t20034_sequence", @@ -182,35 +184,13 @@ void B::b4() "activity_name": "clanguml::t20034::D::d2()", "participant_id": "272777525372220260" }, - "name": "c3()", + "name": "c2()", "return_type": "void", "scope": "normal", "source_location": { "column": 9, "file": "../../tests/t20034/t20034.cc", - "line": 51, - "translation_unit": "../../tests/t20034/t20034.cc" - }, - "to": { - "activity_id": "2116989777037608337", - "activity_name": "clanguml::t20034::C::c3()", - "participant_id": "2153793652884753477" - }, - "type": "message" - }, - { - "from": { - "activity_id": "2116989777037608337", - "activity_name": "clanguml::t20034::C::c3()", - "participant_id": "2153793652884753477" - }, - "name": "c2()", - "return_type": "void", - "scope": "normal", - "source_location": { - "column": 13, - "file": "../../tests/t20034/t20034.cc", - "line": 36, + "line": 50, "translation_unit": "../../tests/t20034/t20034.cc" }, "to": { @@ -266,168 +246,6 @@ void B::b4() } ] }, - { - "messages": [ - { - "from": { - "activity_id": "1707514178726476738", - "activity_name": "clanguml::t20034::D::d2()", - "participant_id": "272777525372220260" - }, - "name": "c1()", - "return_type": "void", - "scope": "normal", - "source_location": { - "column": 9, - "file": "../../tests/t20034/t20034.cc", - "line": 48, - "translation_unit": "../../tests/t20034/t20034.cc" - }, - "to": { - "activity_id": "148530508384958711", - "activity_name": "clanguml::t20034::C::c1()", - "participant_id": "2153793652884753477" - }, - "type": "message" - }, - { - "from": { - "activity_id": "148530508384958711", - "activity_name": "clanguml::t20034::C::c1()", - "participant_id": "2153793652884753477" - }, - "name": "b1()", - "return_type": "void", - "scope": "normal", - "source_location": { - "column": 17, - "file": "../../tests/t20034/t20034.cc", - "line": 29, - "translation_unit": "../../tests/t20034/t20034.cc" - }, - "to": { - "activity_id": "289899516984058785", - "activity_name": "clanguml::t20034::B::b1()", - "participant_id": "1214895773389400008" - }, - "type": "message" - }, - { - "from": { - "activity_id": "289899516984058785", - "activity_name": "clanguml::t20034::B::b1()", - "participant_id": "1214895773389400008" - }, - "name": "a2()", - "return_type": "void", - "scope": "normal", - "source_location": { - "column": 9, - "file": "../../tests/t20034/t20034.cc", - "line": 17, - "translation_unit": "../../tests/t20034/t20034.cc" - }, - "to": { - "activity_id": "1307188853155365430", - "activity_name": "clanguml::t20034::A::a2()", - "participant_id": "1029414747563549012" - }, - "type": "message" - } - ] - }, - { - "messages": [ - { - "from": { - "activity_id": "1707514178726476738", - "activity_name": "clanguml::t20034::D::d2()", - "participant_id": "272777525372220260" - }, - "name": "c4()", - "return_type": "void", - "scope": "normal", - "source_location": { - "column": 9, - "file": "../../tests/t20034/t20034.cc", - "line": 54, - "translation_unit": "../../tests/t20034/t20034.cc" - }, - "to": { - "activity_id": "395720534444062628", - "activity_name": "clanguml::t20034::C::c4()", - "participant_id": "2153793652884753477" - }, - "type": "message" - }, - { - "from": { - "activity_id": "395720534444062628", - "activity_name": "clanguml::t20034::C::c4()", - "participant_id": "2153793652884753477" - }, - "name": "b4()", - "return_type": "void", - "scope": "normal", - "source_location": { - "column": 17, - "file": "../../tests/t20034/t20034.cc", - "line": 39, - "translation_unit": "../../tests/t20034/t20034.cc" - }, - "to": { - "activity_id": "1774155279072101253", - "activity_name": "clanguml::t20034::B::b4()", - "participant_id": "1214895773389400008" - }, - "type": "message" - }, - { - "from": { - "activity_id": "1774155279072101253", - "activity_name": "clanguml::t20034::B::b4()", - "participant_id": "1214895773389400008" - }, - "name": "b2()", - "return_type": "void", - "scope": "normal", - "source_location": { - "column": 5, - "file": "../../tests/t20034/t20034.cc", - "line": 68, - "translation_unit": "../../tests/t20034/t20034.cc" - }, - "to": { - "activity_id": "1034410188120190919", - "activity_name": "clanguml::t20034::B::b2()", - "participant_id": "1214895773389400008" - }, - "type": "message" - }, - { - "from": { - "activity_id": "1034410188120190919", - "activity_name": "clanguml::t20034::B::b2()", - "participant_id": "1214895773389400008" - }, - "name": "a2()", - "return_type": "void", - "scope": "normal", - "source_location": { - "column": 17, - "file": "../../tests/t20034/t20034.cc", - "line": 19, - "translation_unit": "../../tests/t20034/t20034.cc" - }, - "to": { - "activity_id": "1307188853155365430", - "activity_name": "clanguml::t20034::A::a2()", - "participant_id": "1029414747563549012" - }, - "type": "message" - } - ] - }, { "messages": [ { @@ -510,13 +328,197 @@ void B::b4() "activity_name": "clanguml::t20034::D::d2()", "participant_id": "272777525372220260" }, - "name": "c2()", + "name": "c4()", "return_type": "void", "scope": "normal", "source_location": { "column": 9, "file": "../../tests/t20034/t20034.cc", - "line": 50, + "line": 54, + "translation_unit": "../../tests/t20034/t20034.cc" + }, + "to": { + "activity_id": "395720534444062628", + "activity_name": "clanguml::t20034::C::c4()", + "participant_id": "2153793652884753477" + }, + "type": "message" + }, + { + "from": { + "activity_id": "395720534444062628", + "activity_name": "clanguml::t20034::C::c4()", + "participant_id": "2153793652884753477" + }, + "name": "b4()", + "return_type": "void", + "scope": "normal", + "source_location": { + "column": 17, + "file": "../../tests/t20034/t20034.cc", + "line": 39, + "translation_unit": "../../tests/t20034/t20034.cc" + }, + "to": { + "activity_id": "1774155279072101253", + "activity_name": "clanguml::t20034::B::b4()", + "participant_id": "1214895773389400008" + }, + "type": "message" + }, + { + "from": { + "activity_id": "1774155279072101253", + "activity_name": "clanguml::t20034::B::b4()", + "participant_id": "1214895773389400008" + }, + "name": "b2()", + "return_type": "void", + "scope": "normal", + "source_location": { + "column": 5, + "file": "../../tests/t20034/t20034.cc", + "line": 68, + "translation_unit": "../../tests/t20034/t20034.cc" + }, + "to": { + "activity_id": "1034410188120190919", + "activity_name": "clanguml::t20034::B::b2()", + "participant_id": "1214895773389400008" + }, + "type": "message" + }, + { + "from": { + "activity_id": "1034410188120190919", + "activity_name": "clanguml::t20034::B::b2()", + "participant_id": "1214895773389400008" + }, + "name": "a2()", + "return_type": "void", + "scope": "normal", + "source_location": { + "column": 17, + "file": "../../tests/t20034/t20034.cc", + "line": 19, + "translation_unit": "../../tests/t20034/t20034.cc" + }, + "to": { + "activity_id": "1307188853155365430", + "activity_name": "clanguml::t20034::A::a2()", + "participant_id": "1029414747563549012" + }, + "type": "message" + } + ] + }, + { + "messages": [ + { + "from": { + "activity_id": "1707514178726476738", + "activity_name": "clanguml::t20034::D::d2()", + "participant_id": "272777525372220260" + }, + "name": "c1()", + "return_type": "void", + "scope": "normal", + "source_location": { + "column": 9, + "file": "../../tests/t20034/t20034.cc", + "line": 48, + "translation_unit": "../../tests/t20034/t20034.cc" + }, + "to": { + "activity_id": "148530508384958711", + "activity_name": "clanguml::t20034::C::c1()", + "participant_id": "2153793652884753477" + }, + "type": "message" + }, + { + "from": { + "activity_id": "148530508384958711", + "activity_name": "clanguml::t20034::C::c1()", + "participant_id": "2153793652884753477" + }, + "name": "b1()", + "return_type": "void", + "scope": "normal", + "source_location": { + "column": 17, + "file": "../../tests/t20034/t20034.cc", + "line": 29, + "translation_unit": "../../tests/t20034/t20034.cc" + }, + "to": { + "activity_id": "289899516984058785", + "activity_name": "clanguml::t20034::B::b1()", + "participant_id": "1214895773389400008" + }, + "type": "message" + }, + { + "from": { + "activity_id": "289899516984058785", + "activity_name": "clanguml::t20034::B::b1()", + "participant_id": "1214895773389400008" + }, + "name": "a2()", + "return_type": "void", + "scope": "normal", + "source_location": { + "column": 9, + "file": "../../tests/t20034/t20034.cc", + "line": 17, + "translation_unit": "../../tests/t20034/t20034.cc" + }, + "to": { + "activity_id": "1307188853155365430", + "activity_name": "clanguml::t20034::A::a2()", + "participant_id": "1029414747563549012" + }, + "type": "message" + } + ] + }, + { + "messages": [ + { + "from": { + "activity_id": "1707514178726476738", + "activity_name": "clanguml::t20034::D::d2()", + "participant_id": "272777525372220260" + }, + "name": "c3()", + "return_type": "void", + "scope": "normal", + "source_location": { + "column": 9, + "file": "../../tests/t20034/t20034.cc", + "line": 51, + "translation_unit": "../../tests/t20034/t20034.cc" + }, + "to": { + "activity_id": "2116989777037608337", + "activity_name": "clanguml::t20034::C::c3()", + "participant_id": "2153793652884753477" + }, + "type": "message" + }, + { + "from": { + "activity_id": "2116989777037608337", + "activity_name": "clanguml::t20034::C::c3()", + "participant_id": "2153793652884753477" + }, + "name": "c2()", + "return_type": "void", + "scope": "normal", + "source_location": { + "column": 13, + "file": "../../tests/t20034/t20034.cc", + "line": 36, "translation_unit": "../../tests/t20034/t20034.cc" }, "to": { diff --git a/docs/test_cases/t20034_sequence.svg b/docs/test_cases/t20034_sequence.svg index 890c9ce7..933e690d 100644 --- a/docs/test_cases/t20034_sequence.svg +++ b/docs/test_cases/t20034_sequence.svg @@ -1,6 +1,6 @@ - + @@ -14,154 +14,154 @@ - - + + D - + D - - + + C - + C - - + + B - + B - - + + A - + A - - + + D::d2()::(lambda ../../tests/t20034/t20034.cc:56:18) - + D::d2()::(lambda ../../tests/t20034/t20034.cc:56:18) d2() - + - c3() + c2() - - - - - - c2() + + + + b2() - - - - b2() + + + + a2() - - - - a2() + + + + + + d2() + + + + a2() - - - - - - d2() - - - - c1() + + + + + + d2() + + + + operator()() - - - - b1() + + + + a2() - - - - a2() + + + + + + d2() + + + + c4() - - - - - - d2() - - - - c4() + + + + b4() - - - - b4() + + + + + + b2() - - - - - - b2() + + + + a2() - - - - a2() + + + + + + d2() + + + + c1() - - - - - - d2() - - - - a2() + + + + b1() - - - - - - d2() - - - - operator()() + + + + a2() - - - - a2() + + + + + + d2() + + + + c3() - - - - - - d2() - - - - c2() + + + + + + c2() - + b2() - + a2() diff --git a/docs/test_cases/t20034_sequence_mermaid.svg b/docs/test_cases/t20034_sequence_mermaid.svg new file mode 100644 index 00000000..6dca9ae3 --- /dev/null +++ b/docs/test_cases/t20034_sequence_mermaid.svg @@ -0,0 +1,176 @@ + + + + + D::d2()::(lambda ../../tests/t20034/t20034.cc:56:18) + + + + + + A + + + + + + B + + + + + + C + + + + + + D + + + + + + * + + + + + + + + D::d2()::(lambda ../../tests/t20034/t20034.cc:56:18) + + + + + + + + + A + + + + + + + + + B + + + + + + + + + C + + + + + + + + + D + + + + + + + + + * + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + d2() + + c2() + + b2() + + a2() + + d2() + + a2() + + d2() + + operator()() + + a2() + + d2() + + c4() + + b4() + + b2() + + a2() + + d2() + + c1() + + b1() + + a2() + + d2() + + c3() + + c2() + + b2() + + a2() + + diff --git a/docs/test_cases/t20035.md b/docs/test_cases/t20035.md index 608bae86..1b60a073 100644 --- a/docs/test_cases/t20035.md +++ b/docs/test_cases/t20035.md @@ -35,15 +35,17 @@ int tmain(int argc, char **argv) { return a(argc); } } } ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t20035_sequence](./t20035_sequence.svg "from_to sequence diagram test case with free functions") +## Generated Mermaid diagrams +![t20035_sequence](./t20035_sequence_mermaid.svg "from_to sequence diagram test case with free functions") ## Generated JSON models ```json { "diagram_type": "sequence", "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t20035_sequence", diff --git a/docs/test_cases/t20035_sequence.svg b/docs/test_cases/t20035_sequence.svg index a49e0818..544c821b 100644 --- a/docs/test_cases/t20035_sequence.svg +++ b/docs/test_cases/t20035_sequence.svg @@ -1,6 +1,6 @@ - + @@ -13,39 +13,39 @@ - - + + tmain(int,char **) - + tmain(int,char **) - - + + a(int) - + a(int) - - + + b1(int) - + b1(int) - - + + c(int) - + c(int) - + - + - + diff --git a/docs/test_cases/t20035_sequence_mermaid.svg b/docs/test_cases/t20035_sequence_mermaid.svg new file mode 100644 index 00000000..f56672df --- /dev/null +++ b/docs/test_cases/t20035_sequence_mermaid.svg @@ -0,0 +1,106 @@ + + + + + c(int) + + + + + + b1(int) + + + + + + a(int) + + + + + + tmain(int,char **) + + + + + + + + c(int) + + + + + + + + + b1(int) + + + + + + + + + a(int) + + + + + + + + + tmain(int,char **) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/test_cases/t20036.md b/docs/test_cases/t20036.md index 32ca367e..74179e91 100644 --- a/docs/test_cases/t20036.md +++ b/docs/test_cases/t20036.md @@ -64,15 +64,17 @@ struct D { } } ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t20036_sequence](./t20036_sequence.svg "Test case for rendering all call chains leading to an activity (to)") +## Generated Mermaid diagrams +![t20036_sequence](./t20036_sequence_mermaid.svg "Test case for rendering all call chains leading to an activity (to)") ## Generated JSON models ```json { "diagram_type": "sequence", "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t20036_sequence", @@ -129,17 +131,65 @@ struct D { "messages": [ { "from": { - "activity_id": "1523531372012294984", - "activity_name": "clanguml::t20036::C::c3()", + "activity_id": "1742507735898803374", + "activity_name": "clanguml::t20036::C::c1()", "participant_id": "589458700000736705" }, + "name": "b1()", + "return_type": "void", + "scope": "normal", + "source_location": { + "column": 17, + "file": "../../tests/t20036/t20036.cc", + "line": 20, + "translation_unit": "../../tests/t20036/t20036.cc" + }, + "to": { + "activity_id": "203660950902052846", + "activity_name": "clanguml::t20036::B::b1()", + "participant_id": "607147607288902300" + }, + "type": "message" + }, + { + "from": { + "activity_id": "203660950902052846", + "activity_name": "clanguml::t20036::B::b1()", + "participant_id": "607147607288902300" + }, + "name": "a2()", + "return_type": "void", + "scope": "normal", + "source_location": { + "column": 17, + "file": "../../tests/t20036/t20036.cc", + "line": 12, + "translation_unit": "../../tests/t20036/t20036.cc" + }, + "to": { + "activity_id": "2124074228514438863", + "activity_name": "clanguml::t20036::A::a2()", + "participant_id": "399722216848214287" + }, + "type": "message" + } + ] + }, + { + "messages": [ + { + "from": { + "activity_id": "701488875613014930", + "activity_name": "clanguml::t20036::D::d1()", + "participant_id": "847434467114564641" + }, "name": "c2()", "return_type": "void", "scope": "normal", "source_location": { - "column": 13, + "column": 17, "file": "../../tests/t20036/t20036.cc", - "line": 27, + "line": 36, "translation_unit": "../../tests/t20036/t20036.cc" }, "to": { @@ -195,54 +245,6 @@ struct D { } ] }, - { - "messages": [ - { - "from": { - "activity_id": "1735839766717973272", - "activity_name": "clanguml::t20036::C::c4()", - "participant_id": "589458700000736705" - }, - "name": "b2()", - "return_type": "void", - "scope": "normal", - "source_location": { - "column": 17, - "file": "../../tests/t20036/t20036.cc", - "line": 30, - "translation_unit": "../../tests/t20036/t20036.cc" - }, - "to": { - "activity_id": "1726094580455938498", - "activity_name": "clanguml::t20036::B::b2()", - "participant_id": "607147607288902300" - }, - "type": "message" - }, - { - "from": { - "activity_id": "1726094580455938498", - "activity_name": "clanguml::t20036::B::b2()", - "participant_id": "607147607288902300" - }, - "name": "a2()", - "return_type": "void", - "scope": "normal", - "source_location": { - "column": 17, - "file": "../../tests/t20036/t20036.cc", - "line": 13, - "translation_unit": "../../tests/t20036/t20036.cc" - }, - "to": { - "activity_id": "2124074228514438863", - "activity_name": "clanguml::t20036::A::a2()", - "participant_id": "399722216848214287" - }, - "type": "message" - } - ] - }, { "messages": [ { @@ -273,17 +275,65 @@ struct D { "messages": [ { "from": { - "activity_id": "701488875613014930", - "activity_name": "clanguml::t20036::D::d1()", - "participant_id": "847434467114564641" + "activity_id": "1735839766717973272", + "activity_name": "clanguml::t20036::C::c4()", + "participant_id": "589458700000736705" }, - "name": "c2()", + "name": "b2()", "return_type": "void", "scope": "normal", "source_location": { "column": 17, "file": "../../tests/t20036/t20036.cc", - "line": 36, + "line": 30, + "translation_unit": "../../tests/t20036/t20036.cc" + }, + "to": { + "activity_id": "1726094580455938498", + "activity_name": "clanguml::t20036::B::b2()", + "participant_id": "607147607288902300" + }, + "type": "message" + }, + { + "from": { + "activity_id": "1726094580455938498", + "activity_name": "clanguml::t20036::B::b2()", + "participant_id": "607147607288902300" + }, + "name": "a2()", + "return_type": "void", + "scope": "normal", + "source_location": { + "column": 17, + "file": "../../tests/t20036/t20036.cc", + "line": 13, + "translation_unit": "../../tests/t20036/t20036.cc" + }, + "to": { + "activity_id": "2124074228514438863", + "activity_name": "clanguml::t20036::A::a2()", + "participant_id": "399722216848214287" + }, + "type": "message" + } + ] + }, + { + "messages": [ + { + "from": { + "activity_id": "1523531372012294984", + "activity_name": "clanguml::t20036::C::c3()", + "participant_id": "589458700000736705" + }, + "name": "c2()", + "return_type": "void", + "scope": "normal", + "source_location": { + "column": 13, + "file": "../../tests/t20036/t20036.cc", + "line": 27, "translation_unit": "../../tests/t20036/t20036.cc" }, "to": { @@ -408,54 +458,6 @@ struct D { "type": "message" } ] - }, - { - "messages": [ - { - "from": { - "activity_id": "1742507735898803374", - "activity_name": "clanguml::t20036::C::c1()", - "participant_id": "589458700000736705" - }, - "name": "b1()", - "return_type": "void", - "scope": "normal", - "source_location": { - "column": 17, - "file": "../../tests/t20036/t20036.cc", - "line": 20, - "translation_unit": "../../tests/t20036/t20036.cc" - }, - "to": { - "activity_id": "203660950902052846", - "activity_name": "clanguml::t20036::B::b1()", - "participant_id": "607147607288902300" - }, - "type": "message" - }, - { - "from": { - "activity_id": "203660950902052846", - "activity_name": "clanguml::t20036::B::b1()", - "participant_id": "607147607288902300" - }, - "name": "a2()", - "return_type": "void", - "scope": "normal", - "source_location": { - "column": 17, - "file": "../../tests/t20036/t20036.cc", - "line": 12, - "translation_unit": "../../tests/t20036/t20036.cc" - }, - "to": { - "activity_id": "2124074228514438863", - "activity_name": "clanguml::t20036::A::a2()", - "participant_id": "399722216848214287" - }, - "type": "message" - } - ] } ], "to": { diff --git a/docs/test_cases/t20036_sequence.svg b/docs/test_cases/t20036_sequence.svg index a9b86b38..f1a32b05 100644 --- a/docs/test_cases/t20036_sequence.svg +++ b/docs/test_cases/t20036_sequence.svg @@ -1,6 +1,6 @@ - + @@ -13,131 +13,131 @@ - - + + C - + C - - + + B - + B - - + + A - + A - - + + D - + D - c3() - - - - - - c2() + c1() + + + + b1() - - - - b2() + + + + a2() - - - - a2() + + + + + + d1() + + + + c2() - - - - - - c4() - - - - b2() + + + + b2() - - - - a2() + + + + a2() - - - - - - d3() - - - - a2() + + + + + + d3() + + + + a2() - - - - - - d1() - - - - c2() + + + + + + c4() + + + + b2() - - - - b2() + + + + a2() - - - - a2() + + + + + + c3() + + + + + + c2() - - - - - - d2() - - - - c2() + + + + b2() - - - - b2() + + + + a2() - - - - a2() + + + + + + d2() + + + + c2() - - - - - - c1() - + - b1() + b2() - + a2() diff --git a/docs/test_cases/t20036_sequence_mermaid.svg b/docs/test_cases/t20036_sequence_mermaid.svg new file mode 100644 index 00000000..22edc641 --- /dev/null +++ b/docs/test_cases/t20036_sequence_mermaid.svg @@ -0,0 +1,155 @@ + + + + + D + + + + + + A + + + + + + B + + + + + + * + + + + + + C + + + + + + + + D + + + + + + + + + A + + + + + + + + + B + + + + + + + + + * + + + + + + + + + C + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + c1() + + b1() + + a2() + + d1() + + c2() + + b2() + + a2() + + d3() + + a2() + + c4() + + b2() + + a2() + + c3() + + c2() + + b2() + + a2() + + d2() + + c2() + + b2() + + a2() + + diff --git a/docs/test_cases/t30001.md b/docs/test_cases/t30001.md index 8006c1b7..f2faafa3 100644 --- a/docs/test_cases/t30001.md +++ b/docs/test_cases/t30001.md @@ -56,8 +56,10 @@ namespace BB { } // namespace clanguml ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t30001_package](./t30001_package.svg "Basic package diagram test case") +## Generated Mermaid diagrams +![t30001_package](./t30001_package_mermaid.svg "Basic package diagram test case") ## Generated JSON models ```json { @@ -239,8 +241,8 @@ namespace BB { } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t30001_package", diff --git a/docs/test_cases/t30001_package.svg b/docs/test_cases/t30001_package.svg index 0e6e77d6..2a1765af 100644 --- a/docs/test_cases/t30001_package.svg +++ b/docs/test_cases/t30001_package.svg @@ -1,6 +1,6 @@ - + @@ -9,63 +9,63 @@ - - + + A - - + + AA - - + + B - - + + AA - - + + AAA - - + + BBB - - + + BB - - + + AAA - - + + BBB - - + + BB - + A AAA note... - + This is namespace AA in namespace A - + This is namespace AA in namespace B diff --git a/docs/test_cases/t30001_package_mermaid.svg b/docs/test_cases/t30001_package_mermaid.svg new file mode 100644 index 00000000..852d0490 --- /dev/null +++ b/docs/test_cases/t30001_package_mermaid.svg @@ -0,0 +1 @@ +
B
AA
AAA
BBB
BB
A
AA
AAA
BBB
BB
\ No newline at end of file diff --git a/docs/test_cases/t30002.md b/docs/test_cases/t30002.md index 5e53ed7f..d696f817 100644 --- a/docs/test_cases/t30002.md +++ b/docs/test_cases/t30002.md @@ -143,8 +143,10 @@ template std::map> cm() } // namespace clanguml ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t30002_package](./t30002_package.svg "Package dependency test case") +## Generated Mermaid diagrams +![t30002_package](./t30002_package_mermaid.svg "Package dependency test case") ## Generated JSON models ```json { @@ -487,8 +489,8 @@ template std::map> cm() } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t30002_package", diff --git a/docs/test_cases/t30002_package.svg b/docs/test_cases/t30002_package.svg index 848b1352..7d3a56da 100644 --- a/docs/test_cases/t30002_package.svg +++ b/docs/test_cases/t30002_package.svg @@ -1,6 +1,6 @@ - + @@ -9,118 +9,118 @@ - - + + A - - + + AA - - + + B - - + + BB - - + + A1 - - + + A2 - - + + A3 - - + + A4 - - + + A5 - - + + A6 - - + + A7 - - + + A8 - - + + A9 - - + + A10 - - + + A11 - - + + A12 - - + + A13 - - + + A14 - - + + A15 - - + + A16 - - + + A17 - - + + A18 - - + + BBB diff --git a/docs/test_cases/t30002_package_mermaid.svg b/docs/test_cases/t30002_package_mermaid.svg new file mode 100644 index 00000000..56382431 --- /dev/null +++ b/docs/test_cases/t30002_package_mermaid.svg @@ -0,0 +1 @@ +
B
A
BB
AA
BBB
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
A11
A12
A13
A14
A15
A16
A17
A18
\ No newline at end of file diff --git a/docs/test_cases/t30003.md b/docs/test_cases/t30003.md index 09d30327..babd591e 100644 --- a/docs/test_cases/t30003.md +++ b/docs/test_cases/t30003.md @@ -48,8 +48,10 @@ class B : public ns1::ns2::Anon { }; } // namespace t30003 } // namespace clanguml ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t30003_package](./t30003_package.svg "Package deprecated attribute test case") +## Generated Mermaid diagrams +![t30003_package](./t30003_package_mermaid.svg "Package deprecated attribute test case") ## Generated JSON models ```json { @@ -169,8 +171,8 @@ class B : public ns1::ns2::Anon { }; } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t30003_package", diff --git a/docs/test_cases/t30003_package.svg b/docs/test_cases/t30003_package.svg index 9d3ad2cc..79b28858 100644 --- a/docs/test_cases/t30003_package.svg +++ b/docs/test_cases/t30003_package.svg @@ -1,6 +1,6 @@ - + @@ -9,35 +9,35 @@ - - + + ns1 - - + + ns3 «deprecated» - - + + ns1 - - + + ns2_v1_0_0 - - + + ns2_v0_9_0 «deprecated» - - + + ns2 diff --git a/docs/test_cases/t30003_package_mermaid.svg b/docs/test_cases/t30003_package_mermaid.svg new file mode 100644 index 00000000..673e9942 --- /dev/null +++ b/docs/test_cases/t30003_package_mermaid.svg @@ -0,0 +1 @@ +
ns1
ns3
ns2_v1_0_0
ns2
ns2_v0_9_0
\ No newline at end of file diff --git a/docs/test_cases/t30004.md b/docs/test_cases/t30004.md index 2303e078..f72e4147 100644 --- a/docs/test_cases/t30004.md +++ b/docs/test_cases/t30004.md @@ -56,8 +56,10 @@ namespace CCC { } } ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t30004_package](./t30004_package.svg "PlantUML package decorators test case") +## Generated Mermaid diagrams +![t30004_package](./t30004_package_mermaid.svg "PlantUML package decorators test case") ## Generated JSON models ```json { @@ -180,8 +182,8 @@ namespace CCC { } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t30004_package", diff --git a/docs/test_cases/t30004_package.svg b/docs/test_cases/t30004_package.svg index 5d90b82e..02ca4a35 100644 --- a/docs/test_cases/t30004_package.svg +++ b/docs/test_cases/t30004_package.svg @@ -1,6 +1,6 @@ - + @@ -9,40 +9,40 @@ - - + + A - + Package AAA. - + Package BBB. - + CCCC package note. - + We skipped DDD. - - + + AAA - - + + BBB - - + + CCC - - + + EEE diff --git a/docs/test_cases/t30004_package_mermaid.svg b/docs/test_cases/t30004_package_mermaid.svg new file mode 100644 index 00000000..35259c3a --- /dev/null +++ b/docs/test_cases/t30004_package_mermaid.svg @@ -0,0 +1 @@ +
A
AAA
Package AAA.
Package BBB.
BBB
CCCC package note.
CCC
We skipped DDD.
EEE
\ No newline at end of file diff --git a/docs/test_cases/t30005.md b/docs/test_cases/t30005.md index 2231e69f..c466ed22 100644 --- a/docs/test_cases/t30005.md +++ b/docs/test_cases/t30005.md @@ -48,8 +48,10 @@ struct C2 { } ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t30005_package](./t30005_package.svg "Package namespace alias test case") +## Generated Mermaid diagrams +![t30005_package](./t30005_package_mermaid.svg "Package namespace alias test case") ## Generated JSON models ```json { @@ -214,8 +216,8 @@ struct C2 { } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t30005_package", diff --git a/docs/test_cases/t30005_package.svg b/docs/test_cases/t30005_package.svg index 866752fd..e57b27ff 100644 --- a/docs/test_cases/t30005_package.svg +++ b/docs/test_cases/t30005_package.svg @@ -1,6 +1,6 @@ - + @@ -9,48 +9,48 @@ - - + + A - - + + AA - - + + B - - + + BB - - + + C - - + + CC - - + + AAA - - + + BBB - - + + CCC diff --git a/docs/test_cases/t30005_package_mermaid.svg b/docs/test_cases/t30005_package_mermaid.svg new file mode 100644 index 00000000..b1188274 --- /dev/null +++ b/docs/test_cases/t30005_package_mermaid.svg @@ -0,0 +1 @@ +
C
B
A
CC
BB
AA
CCC
BBB
AAA
\ No newline at end of file diff --git a/docs/test_cases/t30006.md b/docs/test_cases/t30006.md index 62c2fcb4..aff0dee5 100644 --- a/docs/test_cases/t30006.md +++ b/docs/test_cases/t30006.md @@ -48,8 +48,10 @@ struct A2 { } } ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t30006_package](./t30006_package.svg "Package split namespace test case") +## Generated Mermaid diagrams +![t30006_package](./t30006_package_mermaid.svg "Package split namespace test case") ## Generated JSON models ```json { @@ -128,8 +130,8 @@ struct A2 { } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t30006_package", diff --git a/docs/test_cases/t30006_package.svg b/docs/test_cases/t30006_package.svg index ecef1104..8801d95e 100644 --- a/docs/test_cases/t30006_package.svg +++ b/docs/test_cases/t30006_package.svg @@ -1,6 +1,6 @@ - + @@ -9,22 +9,22 @@ - - + + B - - + + A - - + + C - + Top A note. diff --git a/docs/test_cases/t30006_package_mermaid.svg b/docs/test_cases/t30006_package_mermaid.svg new file mode 100644 index 00000000..d5456be9 --- /dev/null +++ b/docs/test_cases/t30006_package_mermaid.svg @@ -0,0 +1 @@ +
Top A note.
A
B
C
\ No newline at end of file diff --git a/docs/test_cases/t30007.md b/docs/test_cases/t30007.md index 88407edb..da096382 100644 --- a/docs/test_cases/t30007.md +++ b/docs/test_cases/t30007.md @@ -56,8 +56,10 @@ struct A2 { } } ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t30007_package](./t30007_package.svg "Package diagram layout hints test case") +## Generated Mermaid diagrams +![t30007_package](./t30007_package_mermaid.svg "Package diagram layout hints test case") ## Generated JSON models ```json { @@ -151,8 +153,8 @@ struct A2 { } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t30007_package", diff --git a/docs/test_cases/t30007_package.svg b/docs/test_cases/t30007_package.svg index f765832b..d6438159 100644 --- a/docs/test_cases/t30007_package.svg +++ b/docs/test_cases/t30007_package.svg @@ -1,6 +1,6 @@ - + @@ -9,27 +9,27 @@ - - + + A - - + + B - - + + AA - - + + C - + Compare layout with t30006. diff --git a/docs/test_cases/t30007_package_mermaid.svg b/docs/test_cases/t30007_package_mermaid.svg new file mode 100644 index 00000000..3f233bd2 --- /dev/null +++ b/docs/test_cases/t30007_package_mermaid.svg @@ -0,0 +1 @@ +
A
AA
Compare layout with t30006.
B
C
\ No newline at end of file diff --git a/docs/test_cases/t30008.md b/docs/test_cases/t30008.md index c6b305da..98045c7f 100644 --- a/docs/test_cases/t30008.md +++ b/docs/test_cases/t30008.md @@ -66,8 +66,10 @@ struct FF { } // namespace t30008 } // namespace clanguml ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t30008_package](./t30008_package.svg "Dependants and dependencies package diagram filter test") +## Generated Mermaid diagrams +![t30008_package](./t30008_package_mermaid.svg "Dependants and dependencies package diagram filter test") ## Generated JSON models ```json { @@ -211,8 +213,8 @@ struct FF { } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t30008_package", diff --git a/docs/test_cases/t30008_package.svg b/docs/test_cases/t30008_package.svg index 743da6ce..dca2d131 100644 --- a/docs/test_cases/t30008_package.svg +++ b/docs/test_cases/t30008_package.svg @@ -1,6 +1,6 @@ - + @@ -9,43 +9,43 @@ - - + + dependants - - + + dependencies - - + + A - - + + B - - + + C - - + + D - - + + E - - + + F diff --git a/docs/test_cases/t30008_package_mermaid.svg b/docs/test_cases/t30008_package_mermaid.svg new file mode 100644 index 00000000..43c5c8f5 --- /dev/null +++ b/docs/test_cases/t30008_package_mermaid.svg @@ -0,0 +1 @@ +
dependencies
D
E
F
dependants
A
B
C
\ No newline at end of file diff --git a/docs/test_cases/t30009.md b/docs/test_cases/t30009.md index 2e1eea17..1430109c 100644 --- a/docs/test_cases/t30009.md +++ b/docs/test_cases/t30009.md @@ -46,8 +46,10 @@ namespace D { } ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t30009_package](./t30009_package.svg "Together layout hint test") +## Generated Mermaid diagrams +![t30009_package](./t30009_package_mermaid.svg "Together layout hint test") ## Generated JSON models ```json { @@ -217,8 +219,8 @@ namespace D { } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t30009_package", diff --git a/docs/test_cases/t30009_package.svg b/docs/test_cases/t30009_package.svg index d13e74cb..ea607186 100644 --- a/docs/test_cases/t30009_package.svg +++ b/docs/test_cases/t30009_package.svg @@ -1,6 +1,6 @@ - + @@ -9,53 +9,53 @@ - - + + One - - + + Two - - + + B - - + + D - - + + A - - + + C - - + + A - - + + B - - + + C - - + + D diff --git a/docs/test_cases/t30009_package_mermaid.svg b/docs/test_cases/t30009_package_mermaid.svg new file mode 100644 index 00000000..f264109b --- /dev/null +++ b/docs/test_cases/t30009_package_mermaid.svg @@ -0,0 +1 @@ +
Two
A
B
C
D
One
B
D
A
C
\ No newline at end of file diff --git a/docs/test_cases/t30010.md b/docs/test_cases/t30010.md index d46dceba..f3dab758 100644 --- a/docs/test_cases/t30010.md +++ b/docs/test_cases/t30010.md @@ -32,8 +32,10 @@ App app; } // namespace clanguml ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t30010_package](./t30010_package.svg "Package diagram with packages from directory structure") +## Generated Mermaid diagrams +![t30010_package](./t30010_package_mermaid.svg "Package diagram with packages from directory structure") ## Generated JSON models ```json { @@ -85,8 +87,8 @@ App app; } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t30010_package", diff --git a/docs/test_cases/t30010_package_mermaid.svg b/docs/test_cases/t30010_package_mermaid.svg new file mode 100644 index 00000000..b00c9104 --- /dev/null +++ b/docs/test_cases/t30010_package_mermaid.svg @@ -0,0 +1 @@ +
libraries
lib1
lib2
lib3
lib4
app
\ No newline at end of file diff --git a/docs/test_cases/t30011.md b/docs/test_cases/t30011.md index ad929ae9..35c0399e 100644 --- a/docs/test_cases/t30011.md +++ b/docs/test_cases/t30011.md @@ -22,8 +22,10 @@ File t30011.c struct t30011_App app; ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t30011_package](./t30011_package.svg "Package diagram with packages from directory structure for plain C") +## Generated Mermaid diagrams +![t30011_package](./t30011_package_mermaid.svg "Package diagram with packages from directory structure for plain C") ## Generated JSON models ```json { @@ -75,8 +77,8 @@ struct t30011_App app; } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t30011_package", diff --git a/docs/test_cases/t30011_package_mermaid.svg b/docs/test_cases/t30011_package_mermaid.svg new file mode 100644 index 00000000..b00c9104 --- /dev/null +++ b/docs/test_cases/t30011_package_mermaid.svg @@ -0,0 +1 @@ +
libraries
lib1
lib2
lib3
lib4
app
\ No newline at end of file diff --git a/docs/test_cases/t40001.md b/docs/test_cases/t40001.md index bb63aacf..cae2696f 100644 --- a/docs/test_cases/t40001.md +++ b/docs/test_cases/t40001.md @@ -24,10 +24,16 @@ diagrams: after: - 'note right of {{ alias("include/lib1") }}: This is a lib1 include dir' - 'note right of {{ alias("include/t40001_include1.h") }}: This is a t40001_include1.h include file' + mermaid: + after: + - 'N_00001(This is a lib1 include dir)-.-{{ alias("include/lib1") }}' + - 'N_00002(This is a lib1 include dir)-.-{{ alias("include/t40001_include1.h") }}' ``` ## Source code -## Generated UML diagrams +## Generated PlantUML diagrams ![t40001_include](./t40001_include.svg "Basic include graph diagram test case") +## Generated Mermaid diagrams +![t40001_include](./t40001_include_mermaid.svg "Basic include graph diagram test case") ## Generated JSON models ```json { @@ -101,8 +107,8 @@ diagrams: } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t40001_include", diff --git a/docs/test_cases/t40001_include.svg b/docs/test_cases/t40001_include.svg index cbbc804d..e949b94a 100644 --- a/docs/test_cases/t40001_include.svg +++ b/docs/test_cases/t40001_include.svg @@ -1,6 +1,6 @@ - + @@ -9,43 +9,43 @@ - + src - + include - + lib1 - - + + t40001.cc - - + + t40001_include1.h - - + + lib1.h - + string - + vector - + yaml-cpp/yaml.h - + This is a lib1 include dir - + This is a t40001_include1.h include file diff --git a/docs/test_cases/t40001_include_mermaid.svg b/docs/test_cases/t40001_include_mermaid.svg new file mode 100644 index 00000000..db0830db --- /dev/null +++ b/docs/test_cases/t40001_include_mermaid.svg @@ -0,0 +1 @@ +
include
src
lib1
t40001_include1.h
lib1.h
t40001.cc
string
vector
yaml-cpp/yaml.h
This is a lib1 include dir
This is a lib1 include dir
\ No newline at end of file diff --git a/docs/test_cases/t40002.md b/docs/test_cases/t40002.md index 78585bb8..15a0c02d 100644 --- a/docs/test_cases/t40002.md +++ b/docs/test_cases/t40002.md @@ -27,8 +27,10 @@ diagrams: - "' t40002 test include diagram" ``` ## Source code -## Generated UML diagrams +## Generated PlantUML diagrams ![t40002_include](./t40002_include.svg "Cyclic include graph diagram test case") +## Generated Mermaid diagrams +![t40002_include](./t40002_include_mermaid.svg "Cyclic include graph diagram test case") ## Generated JSON models ```json { @@ -119,8 +121,8 @@ diagrams: } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t40002_include", diff --git a/docs/test_cases/t40002_include.svg b/docs/test_cases/t40002_include.svg index 2755b479..0d1f74de 100644 --- a/docs/test_cases/t40002_include.svg +++ b/docs/test_cases/t40002_include.svg @@ -1,6 +1,6 @@ - + @@ -9,46 +9,46 @@ - + src - + lib1 - + lib2 - + include - + lib1 - + lib2 - - + + t40002.cc - - + + lib1.cc - - + + lib2.cc - - + + lib1.h - - + + lib2.h diff --git a/docs/test_cases/t40002_include_mermaid.svg b/docs/test_cases/t40002_include_mermaid.svg new file mode 100644 index 00000000..6373a988 --- /dev/null +++ b/docs/test_cases/t40002_include_mermaid.svg @@ -0,0 +1 @@ +
include
src
lib1
lib2
lib1
lib2
lib2.h
lib1.h
t40002.cc
lib2.cc
lib1.cc
\ No newline at end of file diff --git a/docs/test_cases/t40003.md b/docs/test_cases/t40003.md index 0e6349e7..08d9074d 100644 --- a/docs/test_cases/t40003.md +++ b/docs/test_cases/t40003.md @@ -25,8 +25,10 @@ diagrams: - "' t40003 test include diagram" ``` ## Source code -## Generated UML diagrams +## Generated PlantUML diagrams ![t40003_include](./t40003_include.svg "Dependants and dependencies include diagram filter test") +## Generated Mermaid diagrams +![t40003_include](./t40003_include_mermaid.svg "Dependants and dependencies include diagram filter test") ## Generated JSON models ```json { @@ -145,8 +147,8 @@ diagrams: } ], "metadata": { - "clang_uml_version": "0.3.8-32-ge830195", - "llvm_version": "Ubuntu clang version 15.0.7", + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t40003_include", diff --git a/docs/test_cases/t40003_include.svg b/docs/test_cases/t40003_include.svg index 10c317c6..8a548f14 100644 --- a/docs/test_cases/t40003_include.svg +++ b/docs/test_cases/t40003_include.svg @@ -1,6 +1,6 @@ - + @@ -9,66 +9,66 @@ - + src - + dependants - + dependencies - + include - + dependants - + dependencies - - + + t1.cc - - + + t2.cc - - + + t3.h - - + + t2.h - - + + t1.h - - + + t3.h - - + + t2.h - - + + t1.h - - + + t5.h diff --git a/docs/test_cases/t40003_include_mermaid.svg b/docs/test_cases/t40003_include_mermaid.svg new file mode 100644 index 00000000..a6907de6 --- /dev/null +++ b/docs/test_cases/t40003_include_mermaid.svg @@ -0,0 +1 @@ +
include
src
dependants
dependencies
dependants
dependencies
t3.h
t2.h
t1.h
t5.h
t3.h
t2.h
t1.h
t2.cc
t1.cc
\ No newline at end of file diff --git a/docs/test_cases/t90000.md b/docs/test_cases/t90000.md index aca68865..4ae6d9c9 100644 --- a/docs/test_cases/t90000.md +++ b/docs/test_cases/t90000.md @@ -21,6 +21,18 @@ diagrams: - 'class "Boo" as C_002' - 'class C_002 {' - '}' + mermaid: + before: + - 'class C_001["Foo"]' + - 'class C_001 {' + - ' +int value' + - '}' + - 'C_001 <|-- ArrayList' + - 'note for C_001 "This is a very important class."' + - 'note "This is a\nfloating note"' + - 'class C_002["Boo"]' + - 'class C_002 {' + - '}' ``` ## Source code @@ -28,6 +40,21 @@ File t90000.cc ```cpp ``` -## Generated UML diagrams +## Generated PlantUML diagrams ![t90000_class](./t90000_class.svg "Basic config test") +## Generated Mermaid diagrams +![t90000_class](./t90000_class_mermaid.svg "Basic config test") ## Generated JSON models +```json +{ + "diagram_type": "class", + "elements": [], + "metadata": { + "clang_uml_version": "0.3.9-11-g4a19c8b", + "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", + "schema_version": 1 + }, + "name": "t90000_class", + "relationships": [] +} +``` diff --git a/docs/test_cases/t90000_class_mermaid.svg b/docs/test_cases/t90000_class_mermaid.svg new file mode 100644 index 00000000..41704b50 --- /dev/null +++ b/docs/test_cases/t90000_class_mermaid.svg @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+
+ + + +
+ +
+
+
+
+
+ + + + + + + +
+ +
+
+ +
+ Foo +
+
+ +
+ +int value +
+
+
+
+ + + + + + +
+ +
+
+ +
+ ArrayList +
+
+
+
+ + + + + + +
+ +
+
+ +
+ Boo +
+
+
+
+ + + + + +
+ This is a very important class. +
+
+
+
+ + + + + +
+ This is a
floating note
+
+
+
+
+
+
+
+
diff --git a/util/format_svg.py b/util/format_svg.py index 32904cea..0b2f24f6 100755 --- a/util/format_svg.py +++ b/util/format_svg.py @@ -37,8 +37,10 @@ def main(argv): tree = etree.fromstring(bytes(xml, encoding='utf8')) # Add style color for links - defs = tree.xpath('//svg:defs', namespaces={'svg':'http://www.w3.org/2000/svg'})[0] - style = etree.SubElement(defs, 'style') + defs = tree.xpath('//svg:defs', namespaces={'svg':'http://www.w3.org/2000/svg'}) + if not defs: + continue + style = etree.SubElement(defs[0], 'style') style.text = 'a:hover { text-decoration: underline; }' style.set('type', 'text/css') diff --git a/util/generate_mermaid.py b/util/generate_mermaid.py index a7843dd3..45e6366a 100644 --- a/util/generate_mermaid.py +++ b/util/generate_mermaid.py @@ -20,12 +20,28 @@ import sys import subprocess +from concurrent.futures import ThreadPoolExecutor from pathlib import Path def print_usage(): print(f'Usage: ./generate_mermaid.py file1.mmd file2.mmd ...') +def generate_mermaid_diagram(f): + try: + print(f'Generating Mermaid diagram from {f}') + f_svg = Path(f).with_suffix('.svg').name + target = Path(f).parent.absolute() + target = target.joinpath('mermaid') + target = target.joinpath(f_svg) + subprocess.check_call(['mmdc', '-i', f, '-o', target]) + except subprocess.CalledProcessError: + print(f'ERROR: Generating Mermaid diagram from {f} failed') + return False + + return True + + files = sys.argv[1:] @@ -35,16 +51,9 @@ if not files: ok = 0 -for f in files: - try: - print(f'Generating Mermaid diagram from {f}') - f_svg = Path(f).with_suffix('.svg').name - target = Path(f).parent.absolute() - target = target.joinpath('mermaid') - target = target.joinpath(f_svg) - subprocess.check_call(['mmdc', '-i', f, '-o', target]) - except subprocess.CalledProcessError: - ok = 1 - print(f'ERROR: Generating Mermaid diagram from {f} failed') + +with ThreadPoolExecutor(max_workers=10) as executor: + result = all(executor.map(generate_mermaid_diagram, files)) + sys.exit(ok)