In message <199902261443.XAA10667.keiju / cupmail0.rational.com>
keiju / rational.com (=?ISO-2022-JP?B?GyRCQFBETTc9PHkbKEI=?= ) writes:

> >をまとめて rpg.tar.gz として http://www.os.xaxon.ne.jp/~kjana/ におい
> >ときました.
> 
> rpgって何?

    NAME
    
        rpg -- Ruby Parser Generator もしくは Recursive-Parser Generator

なんて README にはかいてありますね << ひとごとのようだ (^^;

パーザジェネレータが話題になったころにちょこっとだけ書いて放っておいた
ら racc がでてきて,なんか悔しいから完成させたという再帰下降パーザ生成
器です.相変わらず手抜きかついきあたりばったりな実装なので中身は汚いで
す.

# ばーじょんが 7 か 8 ぐらいになったらせんしゃだってこわせるぞ,とかい
# うのはうそです.

素直なパーザを吐くので後で手をいれるには便利かな,とか.手書きのパーザ
とだいたい同じようなコードを吐きます.あくまで私の手書きなので趣味が会
わない人も多いでしょうが.


> 今って, 全てのパターンにマッチしない時の処理がいい加減ですよね? 
> 
> # っていうと怒られちゃうかな?

本当に全てのパターンにマッチしない場合には else 節で一文字づつ切り出さ
れるようになってます.そこそこ妥当な処置だと思うんですけど.

# それ以上はマッチが起こらないので無限ループに落ちる,っていうのよりは
# だいぶ妥当ではないかと.


> それはともかく, 全てのパターンにマッチしなかった時にマッチする
> 
> else
> 
> 相当のもの欲しいんですが. いかがでしょう?

「既に指定されている他の全てのパターンにマッチせず,あらゆる文字列にマッ
チするパターン」を各モードの最後に書いておけば良いのです `.+' とか.

# 空文字列にマッチすると無限ループに落ちるでしょう.多分.

-- 
柳川和久 @ 東大阪市 . 大阪府                              February 27, 1999
Out of sight, out of mind.