Date: Sat, 05 Aug 2000 From: Paul Kinnucan 1. Please provide a short description of JTB as a recommendation to someone who has never seen or used it before. The JTB is a tool that annotates a JavaCC grammar with actions that build a visitable parse tree representing the syntax of an instance of the language represented by the grammar. The tool also generates a set of Java classes implementing a depth-first visitor that visits every node in the parse trees generated by the tree-building parser. These visitor classes simply traverse the tree. However, by subclassing this set of abstract visitor classes, you can create visitors that do useful work while visiting the tree's nodes, such as interpreting or compiling the parser input. 2. How would you classify your use of JTB? What kind of work are you doing or have you done using JTB? I am using the JTB to provide the Java Development Environment for Emacs (JDE), of which I am the author, with on-the-fly Java syntax checking and expression evaluation capabilities. 3. What is your opinion on JTB? Did you find the tool useful? Please rate it on a scale from 1 to 10 (worst to best). I find the JTB extremely useful. What I like about the JTB is that it provides the JDE with a single parser that can be adapted to multiple purposes, including unforeseen applications. I currently am developing two applications based on JTB. The first is to provide the Emacs editor with the capability to check syntax as the user edits a Java source file. The second is to develop a Java expression interpreter that allows a user to evaluate Java expressions while debugging a Java program. The beauty of JTB is that it allows me to use a single parser for both applications. 4. Have you used other similar tools such as JJTree or ANTLR (specifically, the tree-building aspect of it)? No. Before choosing the JavaCC/JTB combination, I researched the various Java parser generator options available, including JJTree and ANTLR. Based on my research, I felt that the JavaCC/JTB represented the best option for my purposes. 5. If you answered yes to number 4, how would you compare JTB with these other tools? Again, please rate it from 1 to 10 in comparison and include anything you have to say, including comments on ease of use, learning curve, etc. 6. Please include below any other comments you have regarding JTB. Feel free to include any suggestions for improvement. I wish that the generated depth-first visitor classes would include support for exception handling.