From: Ferdinand P. <fer...@ix...> - 2004-04-16 12:33:27
|
Hi, firstly, thank you for publishing such a great framework. I could understand it really fast. I need to create a documentation for a .NET assembly written in managed C++ (extension for writing .NET assemblies in C++). Unfortunately the native documenting tool will exist in 2005 (from Microsoft) for the new syntax only and there is still no OSS tool to compile or document managed C++ (for example in the Mono project). Here we are an example of a source code in the syntax version 1.0: namespace Test { /// <summary> /// Summary description for Class. /// </summary> public __gc class Class : public AbstractClass, public Interface { public: /// <summary> /// Summary description for Class::MethodFromInterface. /// </summary> virtual System::Object * MethodFromInterface.(System::Object *); }; } And here of a target, which I need to generate: <?xml version="1.0"?> <doc> <members> <member name="T:Test.Class"> <summary> Summary description for Class. </summary> </member> <member name="M:Test.Class.MethodFromInterface.(System::Object)"> <summary> Summary description for Class::MethodFromInterface. </summary> </member> </members> </doc> I tried to evaluate some more solutions (doxygen, synopsis, ctool, self-written solution) and find the least expensive one, and also a one, which I liked to implement... ;-) Currently I think the best would be to use OpenC++. I took opencxx 2.7 and did the first version of the tool, which now works. Actually, I only needed to create a base metaclass for the type modifier __gc and to play with the class and its members in FinalizeInstance(). What I did: * created makefiles and projects/solutions for MSVCs producing exe, dll and static library * modified sources to compile in MSVCs and also accept headers from MSVCs (STL) * extended the lexer and parser to accept managed C++ syntax (not fully yet) * created documenting mc module writing a XML from comments of parsed classes However I needed also to extend the model (only a bit, really... :-), because of the managed C++ extensions, which I did not want to simply ignore as some keywords or context-important words (generally, I think that ignoring is not good because someone else could need do more with the model than me). I will have the first fully usable version during this weekend. I would like to offer the sources (changes) as a contribution to your project and help with the maintenance, if you liked. I will publish also the documentatin tool. What do you think? Ferda P.S. By the way, some of you guys really must've used LISP just before writing OpenC++ :-) |