summaryrefslogtreecommitdiffstats
path: root/addon/perlmod/DoxyModel.pm
diff options
context:
space:
mode:
Diffstat (limited to 'addon/perlmod/DoxyModel.pm')
-rw-r--r--addon/perlmod/DoxyModel.pm102
1 files changed, 102 insertions, 0 deletions
diff --git a/addon/perlmod/DoxyModel.pm b/addon/perlmod/DoxyModel.pm
new file mode 100644
index 0000000..10454b9
--- /dev/null
+++ b/addon/perlmod/DoxyModel.pm
@@ -0,0 +1,102 @@
+sub section($$) {
+ my ($wrap, $name) = @_;
+ my $prefix = "Doxy" . $name;
+ return
+ [ "hash", "Doxy" . $wrap,
+ {
+ members =>
+ [ "list", $prefix . "s",
+ [ "hash", $prefix,
+ {
+ kind => [ "field", $prefix . "Kind" ],
+ name => [ "field", $prefix . "Name" ],
+ virtualness => [ "field", $prefix . "Virtualness" ],
+ protection => [ "field", $prefix . "Protection" ],
+ type => [ "field", $prefix . "Type" ],
+ parameters =>
+ [ "list", $prefix . "Params",
+ [ "hash", $prefix . "Param",
+ {
+ declaration_name => [ "field", $prefix . "ParamName" ],
+ type => [ "field", $prefix . "ParamType" ],
+ },
+ ],
+ ],
+ detailed =>
+ [ "hash", $prefix . "Detailed",
+ {
+ doc => [ "doc", $prefix . "DetailedDoc" ],
+ return => [ "doc", $prefix . "Return" ],
+ see => [ "doc", $prefix . "See" ],
+ params =>
+ [ "list", $prefix . "PDBlocks",
+ [ "hash", $prefix . "PDBlock",
+ {
+ parameters =>
+ [ "list", $prefix . "PDParams",
+ [ "hash", $prefix . "PDParam",
+ {
+ name => [ "field", $prefix . "PDParamName" ],
+ },
+ ],
+ ],
+ doc => [ "doc", $prefix . "PDDoc" ],
+ },
+ ],
+ ],
+ },
+ ],
+ },
+ ],
+ ],
+ },
+ ];
+}
+
+$doxymodel =
+ [ "hash", "DoxyTop",
+ {
+ files =>
+ [ "list", "DoxyFiles",
+ [ "hash", "DoxyFile",
+ {
+ name => [ "field", "DoxyFileName" ],
+ typedefs => section("FileTypedefs", "Typedef"),
+ variables => section("FileVariables", "Variable"),
+ functions => section("FileFunctions", "Function"),
+ detailed =>
+ [ "hash", "DoxyFileDetailed",
+ {
+ doc => [ "doc", "DoxyFileDetailedDoc" ],
+ },
+ ],
+ },
+ ],
+ ],
+ classes =>
+ [ "list", "DoxyClasses",
+ [ "hash", "DoxyClass",
+ {
+ name => [ "field", "DoxyClassName" ],
+ public_typedefs => section("ClassPublicTypedefs", "Typedef"),
+ public_methods => section("ClassPublicMethods", "Function"),
+ public_members => section("ClassPublicMembers", "Variable"),
+ protected_typedefs => section("ClassProtectedTypedefs", "Typedef"),
+ protected_methods => section("ClassProtectedMethods", "Function"),
+ protected_members => section("ClassProtectedMembers", "Variable"),
+ private_typedefs => section("ClassPrivateTypedefs", "Typedef"),
+ private_methods => section("ClassPrivateMethods", "Function"),
+ private_members => section("ClassPrivateMembers", "Variable"),
+ detailed =>
+ [ "hash", "DoxyClassDetailed",
+ {
+ doc => [ "doc", "DoxyClassDetailedDoc" ],
+ },
+ ],
+ },
+ ],
+ ],
+ },
+ ];
+
+1;