From: Grzegorz J. <ja...@he...> - 2004-04-19 08:56:12
|
Hi Ferdinand, On Fri, 16 Apr 2004, Ferdinand Prantl wrote: > 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? Help and contributions are always welcome. The main issue now is that as I understand you worked from 2.7, and soon I will be merging huge changes from sandbox_jakacki_frontend1 branch. I would suggest that you have a look at sandbox_jakacki_frontend1 and try to decide, if you can merge your changes there. If not, then perhaps we will have to open concurent branch for MSVC and keep two versions of OpenC++ at least until MSVC branch does not catch up with UNIX branch. My opinion on compiler-specific keywords is that we should support them, but it should be possible to switch them off with command line option. Plases have a look at sandbox_jakacki_frontend1 and let me know what you think. AFAIK Asen tried to compile it on Cygwin, but there were problems which we have not solved yet. BR Grzegorz > Ferda > > P.S. By the way, some of you guys really must've used LISP just before > writing OpenC++ :-) > > ################################################################## # Grzegorz Jakacki Huada Electronic Design # # Senior Engineer, CAD Dept. 1 Gaojiayuan, Chaoyang # # tel. +86-10-64365577 x2074 Beijing 100015, China # # Copyright (C) 2004 Grzegorz Jakacki, HED. All Rights Reserved. # ################################################################## |