GSoC Idea: Auto Documentation Tool for Tcl

Auto Documentation Tool for Tcl

Areas The project areas
Good if student knows Tcl
Priority (Low, Medium, High)
Difficulty Easy
Benefits to the student Learn parsing text with Tcl, generation of HTML, CSS, ...
Benefits to Tcl up-to-date tool for auto-documentation
Mentor Arnulf Wiedemann

Project Description

apw There are some Tcl tools for doing javadoc like documentation using inline comments with special tags like tcldoc, autodoc and zdoc. The problem of all of these is, that they only support "normal" Tcl programs. What is missing is support for namespaces, itcl or itcl-ng and TclOO.

rz You can use doxygen+tcl in these cases.

Benefit for student

Learn a lot about Tcl and its possibilities to parse different kind of source code as well as get experience in generating html code for web pages eventually using ATWF.

Benefit for community

Provide an up-to-date tool for auto documentation (and maybe also a base for debugging tools based on these dicts?)

References

Some URLs here

Comments & Discussion

RZ Not true anymore. Have a look on doxygen+tcl

jima (2011-03-11) What about Ruff!?

I have started building a Tcl program called "itcldoc.tcl" based on a script level version of itcl-ng called itclng to use the parser available there for the itcl syntax and by adding some more parsing routines for "normal" Tcl code, namespace eval code and TclOO code. This program is used to parse all the variables, commons, methods, procs and comment blocks which are placed before that kind of code as well as references to variables and store them in dicts on a file level base. With that parsed information html pages could be built to show cross reference listings, descriptions of code or the source code with mixed in links for variables, procs, methods etc. when they are referenced or called in the code.

The itclng project can be found here [L1 ] and the command for building the dicts (itcldoc.tcl) and can be found here [L2 ]

makr (2011-03-21) When researching on the topic, also have look at the Source Documentation Tools page.