Home | Download | ANTLRWorks | Wiki | About ANTLR | Contact | Support | Bugs | v2


Latest version is 3.4
Download now! »

Download
» Home
» Download
» ANTLRWorks
» News
»Using ANTLR
» Documentation
» FAQ
» Articles
» Grammars
» File Sharing
» Runtime API
» Tech Support
» Bug Tracking
»About ANTLR
» What is ANTLR
» Why use ANTLR
» Showcase
» Testimonials
» Getting Started
» Software License
» ANTLR WebLogs
» ANTLR Workshops
»StringTemplate
»ANTLR v2
»Contact
»Credits
»Contact


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 ;)

Search



ANTLRWorks: The ANTLR GUI Development Environment

Jean 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
Use QuickTime or VideoLAN to view this video

Documentation

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.