# Racc

- http://i.loveruby.net/en/projects/racc/

## DESCRIPTION:

    Racc は LALR(1) パーサジェネレータです。
    yacc の Ruby 版に相当します。

    NOTE:
    Ruby 1.8.0 からは Racc のランタイムが標準添付されているので、
    Racc で生成したパーサを安心して配布できます。また Ruby 1.6 系に
    対応させたい場合は racc -E で生成してください。

## 必要環境

- Ruby 1.8 以降

    (*) C コンパイラと make

## インストール

    gem インストール:

      $ gem install racc

    setup.rb インストル：

    パッケージのトップディレクトリで次のように入力してください。
    ($ は通常ユーザ、# はルートのプロンプトです)

        $ ruby setup.rb config
        $ ruby setup.rb setup
       ($ su)
        # ruby setup.rb install

    これで通常のパスに Racc がインストールされます。自分の好き
    なディレクトリにインストールしたいときは、setup.rb config に
    各種オプションをつけて実行してください。オプションのリストは

        $ ruby setup.rb --help

    で見られます。

    コンパイラがない場合
    --------------------

    config を以下のようにすれば、拡張モジュールなしで
    インストールできます。

        $ ruby setup.rb config --without-ext

## テスト

    sample/ 以下にいくつか Racc の文法ファイルのサンプルが用意
    してあります。動くのも動かないのもありますが、少なくとも
    calc-ja.y は動くのでこれを処理してみましょう。Racc をインス
    トールしたあと

        $ racc -ocalc.rb calc-ja.y

    として下さい。処理は一瞬から数秒で終わるので、

        $ ruby calc.rb

    を実行してください。ちゃんと動いてますか？

    Racc の文法など詳しいことは doc.ja/ ディレクトリ以下の HTML を
    見てください。

## ライセンス

    このパッケージに付属するファイルの著作権は青木峰郎が保持します。
    ライセンスは Ruby ライセンスです。ただしユーザが書いた規則
    ファイルや、Racc がそこから生成した Ruby スクリプトはその対象
    外です。好きなライセンスで配布してください。

## バグなど

    Racc を使っていてバグらしき現象に遭遇したら、下記のアドレスまで
    メールをください。作者にはバグを修正する義務はありませんがその
    意思はあります。また、そのときはできるだけバグを再現できる文法
    ファイルを付けてください。

                                           青木峰郎(あおきみねろう)
                                                aamine@loveruby.net
                                              http://i.loveruby.net