タグ

ブックマーク / i.loveruby.net (3)

  • Racc

    ダウンロード 旧バージョンリスト オンラインマニュアル Ruby 用の LALR(1) パーザジェネレータです。 生成したパーサはそれなりに高速に動作します。 Racc で生成したパーサは動作時にランタイムモジュールが必要です。 Ruby 1.8 にはこのランタイムが最初から添付されているので 何も考えなくて大丈夫ですが、Ruby 1.6 以前を対象にするときは racc -E でパーサを生成する必要があります。 なお、Racc 1.4.x のランタイムと Ruby 1.8 添付の Racc ランタイムは、 ソースコード上では微妙に違いがありますが、完全に互換性があります。 状況 もう基的な部分は枯れているはずです。 TODO はまだいくつかありますが、気持ちが他にいってるので 当分は大きく変更するつもりはありません。 Subversion レポジトリ Subversion を使うと R

    PSV
    PSV 2008/07/30
    Ruby 用の LALR(1) パーザジェネレータです。生成したパーサはそれなりに高速に動作します。
  • Rubyソースコード完全解説 / 青木峰郎

    $Id: index.html,v 1.6 2004/07/20 23:08:12 aamine Exp $ この文書は書籍『Rubyソースコード完全解説』のHTML版です。 ただし初校段階の原稿をベースにしているため、 書籍では修正されている間違いが残っている場合があります。 予め御了承ください。 2004-02-16 に全章を公開しました。 目次 まえがき 序章 第 1 部「オブジェクト」 第 1 章「Ruby言語ミニマム」 第 2 章「オブジェクト」 第 3 章「名前と名前表」 第 4 章「クラス」 第 5 章「ガーベージコレクション」 第 6 章「変数と定数」 第 7 章「セキュリティ」 第 2 部「構文解析」 第 8 章「Ruby言語の詳細」 第 9 章「速習yacc」 第 10 章「パーサ」 第 11 章「状態付きスキャナ」 第 12 章「構文木の構築」 第 3 部「評価」 第

  • 第9章 速習yacc

    概要 パーサとスキャナ プログラム言語のパーサの書きかたは昔からしつこく研究されてきており、 かなりしっかりした定石がある。よほど変な(または曖昧な)文法でない 限り、定石にのっていけば解決できるものだ。 まず最底辺には文字列を単語(トークンとも言う)の列に切り出す部 分がある。これをスキャナ(scanner)とかレクサ(lexer)と言 う。日語で言うと字句解析器だが、言いにくいのでスキャナと呼ぼう。 スキャナというものが出てくる根底にはそもそも「単語の区切りには空白ある でしょ」という常識がある。そして実際にたいていのプログラミング 言語はそういう仕様になっている。そのほうが楽だからだ。 例えば古いFortranでは空白が意味を持たなかった。つまり空白を入れても 単語区切りとは限らないし、変数の途中で何の前触れもなく空白を挿入したり することもできた。ところが解析が恐ろしく面倒なもの

  • 1