Programmers tend to avoid using language tools, resorting to ad hoc methods, because tools can be hard to use, their parsing strategies can be difficult to understand and debug, and their generated parsers can be opaque black-boxes. In particular, there are two very common difficulties encountered by grammar developers: understanding why a grammar fragment results in a parser non-determinism and determining why a generated parser incorrectly interprets an input sentence. This paper describes ANTLRWorks, a complete development environment for ANTLR grammars that attempts to resolve these difficulties and, in general, make grammar development more accessible to the average programmer. The main components are a grammar editor with refactoring and navigation features, a grammar interpreter, and a domain-specific grammar debugger. ANTLRWorks' primary contributions are a parser non-determinism visualizer based on syntax diagrams and a time-traveling debugger that pays special attention to parser decision-making by visualizing lookahead usage and speculative parsing during backtracking. Copyright are written entirely by hand without the use of automated language tools such as parser generators, tree walker generators, and other code generators.Programmers tend to avoid using language tools, resorting to ad hoc methods, partly because of the raw and low-level interface to these tools. The threat of having to contort grammars to resolve parser non-determinisms is enough to induce many programmers to build recursive-descent parsers by hand; some readers are familiar with LALR reduce-reduce warnings from YACC [2] or LL warnings from other parser generators. Programmers commonly resort to hand-built parsers despite the fact that grammars offer a more natural, high-fidelity, robust, and maintainable means of encoding a language-related problem.The ANTLR parser generator [3] attempts to make grammars more accessible to the average programmer by accepting a larger class of grammars than LL(k) and generating recursive-descent parsers that are very similar to what a programmer would build by hand. Still, developing grammars is a non-trivial task. Just as developers use integrated development environments to dramatically improve their productivity, programmers need a sophisticated development environment for building, understanding, and debugging grammars. Unfortunately, most grammar development is done today with a simple text editor.This paper introduces ANTLRWorks, a domain-specific development environment for ANTLR version 3 grammars that we built in order to: ANTLRWORKS 1307 immediate feedback about their correctness. Developers tend to test methods, rather than waste time mentally checking the functionality of a method, because it is so quick and easy. Similarly, being able to dynamically test rules as they are written can dramatically reduce development time.Once a grammar is more-or-less complete and the generated parser has been integrated into a larger application, the grammar interpreter is less useful primarily because...