The new Tcl parser


Masatake YAMATO <>

Tcl parser is rewritten as a token oriented parser to support namespace. It was line oriented parser. Some incompatibility between Exuberant Ctags is introduced in the rewriting.

The line oriented parser captures class, public|protected|private method. They are definitions in ITcl and TclOO. The new token oriented Tcl parser ignores them. Instead ITcl and TclOO subparser running on Tcl base parser capture them.

Known bugs

Full qualified tags

The separator used in full qualified tags should be :: but . is used.

A ITcl or TclOO class C can be defined in a Tcl namespace N:

namespace eval N {
    oo::class create C {

When --extras=+q is given, currently ctags reports:

N.C ...

This should be:

N::C ...

Much work is needed to fix this.

Nested procs

proc defined in a proc cannot be captured well. This is a regression.