Support StringTemplate, ANTLR Project by making a donation! Terence often pays for things like the antlr.org server, conference travel, and this site design (that alone cost US$1000). Buy him a beer and pizza remotely ;)
|
ANTLRWorks: The ANTLR GUI Development Environment
ANTLRWorks is a novel grammar development
environment for ANTLR v3 grammars written by Jean Bovet (with
suggested use cases from Terence Parr). It combines an excellent
grammar-aware editor with an interpreter for rapid prototyping and a
language-agnostic debugger for isolating grammar errors. ANTLRWorks
helps eliminate grammar nondeterminisms, one of the most difficult
problems for beginners and experts alike, by highlighting
nondeterministic paths in the syntax diagram associated with a
grammar. ANTLRWorks' goal is to make grammars more accessible to the
average programmer, improve maintainability and readability of
grammars by providing excellent grammar navigation and refactoring
tools, and address the most common questions and problems encountered
by grammar developers:
- Why is this grammar fragment nondeterministic?
- Does this rule match a sample input?
- Why is this grammar improperly matching this complete input?
- Why is there a syntax error given this input?
- Why is there no syntax error given this ungrammatical input?
ANTLRWorks speeds up development for experts and beginners alike.
See also the Romanian translation of this web page (by Web Geek Science)
Download ANTLRWorks 1.5.2
On Mac OS X you can just click on that jar and it will start up the GUI. Same for Windows unless you use IE (IE thinks it's a zip). On Linux, you have to save to the disk and run from the command line (read this tutorial for more information about launching ANTLRWorks). That jar includes all the other jars necessary to run it including ANTLR 3.5rc2, StringTemplate 4.0.7rc2, and StringTemplate 3.2.1.
Note: ANTLRWorks requires Java 1.5 or later to run
Previous Versions
Take your pick from download directory.
|
|
Bugs
- Bugs: sorry, I am not fixing bugs anymore
|
|
Screen shots and movies
|
|
|
Editor Window
|
Grammar Interpreter
|
Integrated Debugger
|
|
|
Click the following link to watch the debugger in action:
debugger.mp4
|
Ambiguous Path Visualization
|
Decision DFA Visualization
|
|
|
|
Editor
- Single window editing
- Syntax highlighting
- Rule navigation tree
- Jump to rule or token definition
- Go To Rule
- Find usages of tokens or rules
- Find and Replace using regular expression
- Sensitive keyword, rule, and token auto-completion
- Rules and actions folding
- Tips and ideas
- Auto-indentation
- Refactoring - remove left recursion, extract or inline rule, etc.
- Show generated lexer or parser code using syntax coloring
- Syntax diagram display for lexer and parser rule
- Show unreachable alternative(s) in syntax diagram
- Display nondeterminism warning as ambiguous paths through the syntax diagram
- Highlight decision DFA
- Rule dependency graph
- Export syntax diagram, NFA and parse tree to bitmap image or EPS file
- Perforce integration
- emacs key bindings (Mac OS X only)
- Contextual menus
- Print
|
|
Grammar interpreter
ANTLRWorks can immediately interpret a grammar and test it against
some sample input--without generating anything! Great for rapid
prototyping. You get the parse tree as a result of interpreting a
grammar. Imagine passing some input to a rule in your grammar and
instantly seeing how the rule matches the input.
- Dynamically interpreter any input text
- Display parse trees as list or graph
|
|
Grammar debugger
ANTLR v3 has a sophisticated debug event mechanism that allows ANTLRWorks to follow along as a parser processes input. ANTLR v3 includes a well-defined protocol for communicating with remote parsers so ANTLRWorks can actually connect to a parser generated in any language with a socket library. We designed the debugger to work like TiVo: you can pause a running parser and then rewind it! Once a parse has completed, ANTLRWorks has a complete trace and allows the user to walk back and forth over the input stream like a video camera.
- Local or remote debugger
- Language agnostic
- Dynamic parse tree
- Dynamic AST
- Tree grammar debugging
- Lookahead highlighting
- Breakpoint in grammar
- Breakpoint in input text!
- Breakpoint on any events - LT, consume token, exception, etc.
- Step over rule
- Show corresponding grammar location and parse tree node for each input token
- Detachable panels
|
|
Code generation
ANTLRWorks supports code generation in any language that ANTLR knows how
to generate via the output=language option.
For Java, however, ANTLRWorks knows how to build a test harness,
compile everything, launch the parser, and connect to it--a great
rapid prototyping feature when you can't use the interpreter because
actions and/or semantic predicates must execute.
|
|
|