Scroll to navigation

JTB(1) General Commands Manual JTB(1)


jtb - syntax tree builder for JavaCC


jtb [options] inputfile


This manual page documents briefly the jtb command.

JTB (Java Tree Builder) is a syntax tree builder and visitors generator to be used in front of JavaCC (Java Compiler Compiler). It takes a JavaCC grammar file as input (usually a ".jtb" file) and automatically generates the following:

- a set of syntax tree classes based on the productions in the grammar, utilizing the Visitor design pattern;

- four interfaces: IVoidVisitor, IVoidArguVisitor, IRetVisitor, IRetArguVisitor;

- four depth-first visitors: DepthFirstVoidVisitor, DepthFirstVoidArguVisitor, DepthFirstRetVisitor, DepthFirstREtArguVisitor, whose default methods simply visit the children of the current node; a JavaCC grammar ".jj" file (jtb.out.jj by default), with the proper annotations to build the syntax tree during parsing (which then must be compiled with JavaCC).

New visitors, which subclass any generated one, can then override the default methods and perform various operations on and manipulate the generated syntax tree.


Print a list of the classes generated to standard out.
"-d dir" is short for (and overwrites) "-nd dir/syntaxtree -vd dir/visitor".
Generate depth level info.
Suppress JTB semantic error checking.
Use descriptive node class field names.
Display this help message and quit.
Inline visitors accept methods on base classes.
Generate JavaDoc-friendly comments in the nodes and visitor.
Use NAME as the package for the syntax tree nodes.
Use NAME as the package for the syntax tree nodes.
Use NAME as the class which all node classes will extend.
Use NAME as the filename for the annotated output grammar.
"-p pkg" is short for (and overwrites) "-np pkg.syntaxtree -vp pkg.visitor".
Generate parent pointers in all node classes.
Generate a syntax tree dumping visitor.
Read from standard input rather than a file.
Generate Scheme records representing the grammar and a Scheme tree building visitor.
Generate special tokens into the tree.
Use NAME as the package for the default visitor classes.
Use NAME as the package for the default visitor classes.
Do not overwrite existing files.




jtb was written by the UCLA Compilers Group.

This manual page was written by David Paleino <>, for the Debian project (and may be used by others).

This manual page was updated by Ludovico Cavedon <>.

Jun 2010