Hi, I just committed a small program under fpdoc - fpclasschart - which will create a XML tree with all classes/objects/interfaces it finds in a set of files. The sources are parsed and forward class declarations are skipped.
It has support for merging class trees. It's thoroughly tested on FCL-base and RTL and gives nice results (resulting in about 210 classes). I think we should think about how to use and integrate this in the help system, comments and suggestions are therefor more than welcome. Michael. PS. For the daring, here are the command-lines needed to create the class charts for the RTL and fcl: ../utils/fpdoc/fpclasschart \ --output=rtlclasses.xml \ --input="-dfpdocsystem -dHASGETHEAPSTATUS -dSUPPORT_DOUBLE ../rtl/linux/system.pp -Fi../rtl/linux -Fi../rtl/unix -Fi../rtl/inc -Fi../rtl/i386 -dCPU32 -dHASVARIANT -dFPC_HAS_TYPE_EXTENDED -dHASWIDECHAR " \ --input="-dHASINTF ../rtl/objpas/objpas.pp " \ --input="../rtl/unix/sysutils.pp -Fi../rtl/objpas/sysutils -Fi../rtl/inc " \ --input="../rtl/objpas/strutils.pp " \ --input="../rtl/inc/strings.pp -Fi../rtl/i386 -Fi../rtl/inc " \ --input="../rtl/unix/mouse.pp -Fi../rtl/inc " \ --input="../rtl/unix/keyboard.pp -Fi../rtl/inc " \ --input="../rtl/unix/crt.pp -Fi../rtl/inc " \ --input="../rtl/unix/video.pp -Fi../rtl/inc " \ --input="../rtl/unix/dos.pp -Fi../rtl/inc -dcpui386 " \ --input="-dver1_0 ../rtl/unix/sockets.pp -Fi../rtl/inc -Fi../rtl/linux " \ --input="../rtl/inc/objects.pp -Fi../rtl/i386 -Fi../rtl/linux " \ --input="../rtl/inc/heaptrc.pp -Fi../rtl/i386 -Fi../rtl/linux " \ --input="../rtl/i386/mmx.pp -Fi../rtl/linux " \ --input="../rtl/unix/ipc.pp -Fi../rtl/linux " \ --input="../rtl/unix/printer.pp -Fi../rtl/linux -Fi../rtl/inc " \ --input="../rtl/objpas/typinfo.pp -Fi../rtl/linux " \ --input="../rtl/unix/ports.pp -Fi../rtl/linux " \ --input="../rtl/inc/getopts.pp -Fi../rtl/linux " \ --input="../rtl/go32v2/emu387.pp -Fi../rtl/i386 " \ --input="../rtl/go32v2/dxeload.pp -Fi../rtl/i386 " \ --input="../rtl/go32v2/go32.pp -Fi../rtl/i386 " \ --input="-dVER1_0 ../rtl/linux/gpm.pp -Fi../rtl/i386 " \ --input="../packages/graph/src/unix/graph.pp -Fi../packages/graph/src/inc " \ --input="../rtl/linux/oldlinux.pp -Fi../rtl/linux -Fi../rtl/unix " \ --input="../rtl/unix/unixtype.pp -Fi../rtl/unix -Fi../rtl/linux -Fi../rtl/linux/i386 " \ --input="../rtl/unix/baseunix.pp -Fi../rtl/unix -Fi../rtl/linux -Fi../rtl/linux/i386 " \ --input="../rtl/unix/unix.pp -Fi../rtl/unix -Fi../rtl/linux -Fi../rtl/linux/i386 " \ --input='../rtl/unix/classes.pp -Fi../rtl/objpas/classes -dfpdocsystem' \ --input="../rtl/unix/unixutil.pp " \ --input="../rtl/unix/x86.pp " \ --input="../rtl/inc/dynlibs.pas -Fi../rtl/unix " \ --input="../rtl/linux/linux.pp -Fi../rtl/linux -Fi../rtl/unix " \ --input="../rtl/objpas/math.pp -Fi../rtl/i386 -dFPC_HAS_TYPE_EXTENDED " \ --input="../rtl/inc/matrix.pp -Fi../rtl/inc " \ --input="../rtl/objpas/dateutils.pp -Fi../rtl/objpas " \ --input="../packages/graph/src/win32/wincrt.pp" ../utils/fpdoc/fpclasschart --output=fclclasses.xml --merge=rtlclasses.xml \ --input="-S2 ../packages/fcl-base/src/iostream.pp" \ --input="../packages/fcl-process/src/pipes.pp" \ --input="../packages/fcl-base/src/streamio.pp" \ --input="../packages/fcl-process/src/process.pp" \ --input="../packages/fcl-process/src/dbugintf.pp" \ --input="../packages/fcl-base/src/contnrs.pp" \ --input="../packages/paszlib/src/zstream.pp" \ --input="../packages/fcl-base/src/idea.pp" \ --input="../packages/fcl-base/src/bufstream.pp" \ --input="../packages/fcl-base/src/base64.pp" \ --input="../packages/fcl-base/src/gettext.pp" \ --input="../packages/fcl-web/src/ezcgi.pp" \ --input="../packages/fcl-base/src/pooledmm.pp" \ --input="../packages/fcl-process/src/dbugmsg.pp" \ --input="../packages/fcl-base/src/streamex.pp" \ --input="../packages/fcl-base/src/inicol.pp" \ --input="../packages/fcl-base/src/streamcoll.pp" \ --input="../packages/fcl-base/src/cachecls.pp" \ --input="../packages/fcl-base/src/eventlog.pp" \ --input="../packages/fcl-base/src/syncobjs.pp" \ --input="../packages/fcl-base/src/custapp.pp" \ --input="../packages/fcl-base/src/blowfish.pp" \ --input="../packages/fcl-process/src/simpleipc.pp" \ --input="../packages/fcl-base/src/inifiles.pp" \ --input="../packages/fcl-base/src/rttiutils.pp" _______________________________________________ Lazarus mailing list Lazarus@lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus