Syntax Databases

The tool uses a file defining what commands are available and how they are used. This file is typically called syntaxdb.tcl, and is just a Tcl file defining variables.

Any file called syntaxdb*.tcl in your current directory or in the directory where Nagelfar is located is detected and possibly used as default database unless you specify one on the command line. The search order for default database is:

  • syntaxdb.tcl in current directory

  • syntaxdb*.tcl in current directory (if more than one it is unspecified which)

  • syntaxdb.tcl where Nagelfar is located

  • syntaxdb*.tcl where Nagelfar is located

You can select database(s) with the command line switch “-s”.

In the GUI, all databases found are listed, and those found where Nagelfar is located are marked “(app)”.

Syntax databases may contain inline comments, so a file generated with the -header option may be used with -s.

Creating Syntax Databases

A syntax database is created by syntaxbuild.tcl which makes it possible to create customized databases for the interpreter where your script will run.

For example, if you want to create a database for Tcl8.2:

$ tclsh82 syntaxbuild.tcl syntaxdb82.tcl

or

$ tclsh82 % source syntaxbuild.tcl % buildFile syntaxdb82.tcl % exit

Then use it:

$ nagelfar.tcl -s syntaxdb82.tcl <tcl-file>

On Windows it is usually just to double click on syntaxbuild.tcl and a new syntaxdb.tcl is generated using your installed Tcl version.

Limitations to extraction

As a base, only command names are collected and marked known. Thus avoiding “unknown command” errors.

More to be written…

Package databases

Whan a ‘package require’ is encountered, Nagelfar will look for a matching database to load for that package. In the distribution, they are under the packagedb/ directory which is searched for next to the nagelfar.tcl script.