# Antlr3 1.7.2 ( improved ANTLR v3 language recognition for Ruby )

**URL:** <https://www.ruby-forum.com/t/antlr3-1-7-2-improved-antlr-v3-language-recognition-for-ruby/188715>\
**Category:** Ruby\
**Created:** [May 17, 2010, 2:42am UTC](https://www.ruby-forum.com/t/antlr3-1-7-2-improved-antlr-v3-language-recognition-for-ruby/188715 "2010-05-17T02:42:42Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![kyle](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/848f3c/32.png) [@kyle](https://www.ruby-forum.com/u/kyle)\
**Post date:** [May 17, 2010, 2:42am UTC](https://www.ruby-forum.com/t/antlr3-1-7-2-improved-antlr-v3-language-recognition-for-ruby/188715/1 "2010-05-17T02:42:42Z")

</div>

There have been a hand full of releases since I have posted an  
announcement  
here. Since then, I have implemented a simple ERB-based template output  
mode,  
in lieu of the StringTemplate-based template mode provided by ANTLR’s  
Java and  
Python targets. I have also fixed several bugs, made a number of code  
tweaks,  
and authored a significant amount of usage and API documentation. Scroll  
on  
down for a catalog of significant changes since version 1.3.

Gem installation: gem install antlr3  
Homepage: [http://antlr.ohboyohboyohboy.org](http://antlr.ohboyohboyohboy.org)  
[Rubygems.org](http://Rubygems.org): [antlr3 | RubyGems.org | your community gem host](http://rubygems.org/gems/antlr3)  
GitHub: [GitHub - ohboyohboyohboy/antlr3: Fully-featured ruby parser generation using ANTLR version 3](http://github.com/ohboyohboyohboy/antlr3)

== About

Fully-featured ANTLR 3 parser generation for Ruby.

ANTLR (ANother Tool for Language Recognition) is a tool that is used to  
generate code for performing a variety of language recognition tasks:  
lexing,  
parsing, abstract syntax tree construction and manipulation, tree  
structure  
recognition, and input translation. The tool operates similarly to other  
parser generators, taking in a grammar specification written in the  
special  
ANTLR metalanguage and producing source code that implements the  
recognition  
functionality.

While the tool itself is implemented in Java, it has an extensible  
design that  
allows for code generation in other programming languages. To implement  
an  
ANTLR language target, a developer may supply a set of templates written  
in  
the StringTemplate ([http://www.stringtemplate.org](http://www.stringtemplate.org)) language.

ANTLR is currently distributed with a fairly limited Ruby target  
implementation. While it does provide implementation for basic lexer and  
parser classes, the target does not provide any implementation for  
abstract  
syntax tree construction, tree parser class generation, input  
translation, or  
a number of the other ANTLR features that give the program an edge over  
traditional code generators.

This gem packages together a complete implementation of the majority of  
features ANTLR provides for other language targets, such as Java and  
Python.  
It contains:

- A customized version of the latest ANTLR program, bundling all  
necessary  
java code and templates for producing fully featured language  
recognition  
in ruby code

- a ruby run-time library that collects classes used throughout the code  
that  
ANTLR generates

- a wrapper script, `antlr4ruby’, which executes the ANTLR command line  
tool  
after ensuring the ruby-tailored ANTLR jar is in java’s class path

== Features

- powerful LALR lexer, parser, and tree-parser class generation
- rapid development with ANTLR features like LL(\*) prediction,  
backtracking w/ memoization, and predicates
- ANTLR run-time library code that aims to be more intuitive and  
stylized for  
the conventions ruby developers are accustomed to
- integrated Abstract Syntax Tree (AST) construction, rewriting, and  
parsing
- an ERB-based template output mode to simplify source translation and  
extraction
- built-in test driver code to quickly try out grammar output
- debug and profile modes to help develop and optimize grammars
- extra utilities such as DOT-based graph generation and tree building  
wizards to help with the development process

== History

=== 1.7.2 / 05-16-10

- Minor Enhancements

- Bug Fixes

- Documentation

=== 1.7.0 / 04-20-10

- Minor Enhancements

- Bug Fixes

- Documentation

=== 1.6.3 / 02-12-10

- 4 Minor Enhancements
  - added --help and --version options to antlr4ruby
  - documented the antlr4ruby source and added license information
  - prettied up the source code in all of the library files a little
  - added a hoe-based rakefile with the gem distribution of the source  
code

=== 1.6.0 / 01-27-10

- 4 Minor Enhancements to run-time library

- 2 bug fixes / 1 change to templates

=== 1.5.0 / 01-25-10

- 2 minor enhancements

- 1 optimization

- new test code

=== 1.4.0 / 01-17-10

- 1 major new feature

- new test code

Best Regards,  
Kyle Yetter
