[Doxygen-develop] A way and place to modify internal program model
Brought to you by:
dimitri
From: Peter A. K. <ke...@ma...> - 2005-08-15 23:56:21
|
Greetings, doxygen developers! Pleased to meet you here :) I'm new to this list, so please accept my excuses for potentially stupid questions :) So, here's the thing that brought me here. I develop C++ and I like doxygen much for a pretty nice UML-like models it draws (especially with dot). But C++ modeling lacks one very important feature - consider following code: class A { /* ... */}; typedef A A_alias; class B { A_alias a; }; The collaboration diagram for B will not represent any usage of A, while it is obvious on the language side. While one might argue against aliasing, it is quite common while using STL, e.g.: #include <vector> class A { /* ... */ }; class B { typedef vector<A> storage_t; storage_t storage; }; So some time ago I implemented this feature by adding additional pass over entire model just after model is finished, but before any output generation. For each typedef that pass created a class with the same name and added a usage link to the real type. Unfortunately my implementation was so weird that I erased all the code I've written as soon as I made it up. So, what I want to say is that this is quite handy feature that will help reverse analyzing a lot. And I would like to provide consistent implementation, but for that purpose I'll possibly require a bit of your attention. So, could you please point me the place to put this kind of code? I suppose parsing phase is more appropriate than additional loop, and I think that it might be more consistent way to extend typedef representation a bit and then extend typedef interpretation by graph subsystem. Well, finally I am looking forward to receiving any guidelines from you. Thanks in advance :) -- Best Regards, Peter A. Kerzum |