Need help with racc?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

467 Stars 78 Forks BSD 2-Clause "Simplified" License 694 Commits 13 Opened issues


Racc is an LALR(1) parser generator. It is written in Ruby itself, and generates ruby programs.

Services available


Need anything else?

Contributors list

= Racc



Racc is a LALR(1) parser generator. It is written in Ruby itself, and generates Ruby program.

NOTE: Ruby 1.8.x comes with Racc runtime module. You can run your parsers generated by racc 1.4.x out of the box.

== Requirement

  • Ruby 1.8.x or later.

== Installation

gem install:

$ gem install racc

setup.rb install:

Type this in the top directory of the extracted archive:

$ ruby setup.rb config
$ ruby setup.rb setup

($ su) # ruby setup.rb install

You can install Racc into your favorite directory by giving options to setup.rb. e.g.

$ ruby setup.rb config --prefix=/usr

For details, try "ruby setup.rb --help".

If you don't have C Compiler

You can install Racc without C compilers. Type following command in config phase.

$ ruby setup.rb config --without-ext

== Testing Racc

Racc comes with simple calculator. To compile this, on shell:

  $ racc -o calc calc.y

This process costs few seconds (or less). Then type:

  $ ruby calc

... Does it work? For details of Racc, see HTML documents placed under 'rdoc/en/' and sample grammar files under 'sample/'.

== License

Racc is distributed under the same terms of ruby. (see the file COPYING). Note that you do NOT need to follow ruby license for your own parser (racc outputs). You can distribute those files under any licenses you want.

== Bug Reports

Any kind of bug report is welcome. If you find a bug of Racc, please email me. Your grammar file, debug output generated by "racc -g", are helpful.

                                                  Minero Aoki
                                          [email protected]

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.