diff options
Diffstat (limited to 'addon/perlmod/DoxyModel.pm')
-rw-r--r-- | addon/perlmod/DoxyModel.pm | 102 |
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; |