1a4f2b2b1SMasatake YAMATO.. _tcl: 2a4f2b2b1SMasatake YAMATO 3a4f2b2b1SMasatake YAMATO====================================================================== 45a233a2dSMasatake YAMATOThe new Tcl parser 5a4f2b2b1SMasatake YAMATO====================================================================== 6a4f2b2b1SMasatake YAMATO 7a4f2b2b1SMasatake YAMATO:Maintainer: Masatake YAMATO <yamato@redhat.com> 8a4f2b2b1SMasatake YAMATO 9a4f2b2b1SMasatake YAMATOTcl parser is rewritten as a token oriented parser to support 10a4f2b2b1SMasatake YAMATOnamespace. It was line oriented parser. Some incompatibility between 11*bb84f88aSHiroo HAYASHIExuberant Ctags is introduced in the rewriting. 12a4f2b2b1SMasatake YAMATO 13a4f2b2b1SMasatake YAMATOThe line oriented parser captures `class`, `public|protected|private 14a4f2b2b1SMasatake YAMATOmethod`. They are definitions in ITcl and TclOO. The new token oriented Tcl 15a4f2b2b1SMasatake YAMATOparser ignores them. Instead ITcl and TclOO subparser running on Tcl base 16a4f2b2b1SMasatake YAMATOparser capture them. 17ab2b027aSMasatake YAMATO 18ab2b027aSMasatake YAMATOKnown bugs 19ab2b027aSMasatake YAMATO---------------------------------------------------------------------- 20ab2b027aSMasatake YAMATO 21ab2b027aSMasatake YAMATOFull qualified tags 22ab2b027aSMasatake YAMATO^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 23ab2b027aSMasatake YAMATO 24ab2b027aSMasatake YAMATOThe separator used in full qualified tags should be `::` but `.` is 25ab2b027aSMasatake YAMATOused. 26ab2b027aSMasatake YAMATO 27ab2b027aSMasatake YAMATOA ITcl or TclOO class `C` can be defined in a Tcl namespace `N`: 28ab2b027aSMasatake YAMATO 29ab2b027aSMasatake YAMATO.. code-block:: Tcl 30ab2b027aSMasatake YAMATO 31ab2b027aSMasatake YAMATO namespace eval N { 32ab2b027aSMasatake YAMATO oo::class create C { 33ab2b027aSMasatake YAMATO } 34ab2b027aSMasatake YAMATO } 35ab2b027aSMasatake YAMATO 36ab2b027aSMasatake YAMATOWhen ``--extras=+q`` is given, currently ctags reports:: 37ab2b027aSMasatake YAMATO 38ab2b027aSMasatake YAMATO N.C ... 39ab2b027aSMasatake YAMATO 40ab2b027aSMasatake YAMATOThis should be:: 41ab2b027aSMasatake YAMATO 42ab2b027aSMasatake YAMATO N::C ... 43ab2b027aSMasatake YAMATO 44ab2b027aSMasatake YAMATOMuch work is needed to fix this. 45ab2b027aSMasatake YAMATO 46ab2b027aSMasatake YAMATONested procs 47ab2b027aSMasatake YAMATO^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 48ab2b027aSMasatake YAMATO 49ab2b027aSMasatake YAMATO`proc` defined in a `proc` cannot be captured well. 50ab2b027aSMasatake YAMATOThis is a regression. 51