上田です。 rubyの話題にはなかなかついていけないので、 どうでもいいところにフォローします。 ;-) ま> |各行にフィルード名と値が含まれ、レコードの区切りは空行という、 ま> |よくあるタイプのテキストデータベースがありますよね。ええと、 ま> | ま> |DATABASE : (RECORD "\n")* ま> |RECORD : (FIELD "\n")* ま> |FIELD : KEY "\t" VALUE ま> | ま> |でいいのかな? (KEY,VALUEは文字列) ま> えーと,shift reduce conflictになるんですけど.^^;;; ま> あ,「レコードの区切りは空行」だから ま> |DATABASE : (RECORD "\n\n")* 多分複数の空行があると空のレコードなのか空のフィールドなのか区別がつか ないんじゃないかな。 DATABASE : (RECORD "\n" "\n"*) * でどうでしょう? DATABASE : RECORD | DATABASE "\n" "\n"* RECORD だと最後に空行がなくてもOKですね。 --HAL