In message <199901210735.QAA03189.keiju / bc.mbn.or.jp> keiju / Rational.Com (=?ISO-2022-JP?B?GyRCQFBETTc9PHkbKEI=?= ) writes: > >「racc の古いのしか無くてコンパイルできん」ということで,書き換えて > >yacc にかけてみました. > > おぉ!! そんな裏技があるとは, 全然気がつきませんでした(^^;;; semantic action をとっぱらって %token でトークンの定義をズラズラ並べる だけですから.syntax の表現はどちらも同じ....いまのところ.で, > >yacc -v rtags.y としてコンパイルすると 6 reduce/reduce conflicts とな > >りました.y.output を眺めると racc にも -v オプションはあったりするんですね.多分同じような情報が得 られると思います. # 試してないことがばればれです (^^; > ruby/parse.yですと > > | kCLASS tLSHFT expr term > { > : > > ってなっているんですよね. rtagsとしては, これが何の特異クラスか知りた > いんですが, selfの場合と定数の場合ぐらいしか分からないので, selfと定数 > の場合とそれ以外って風になっていたのでした. これをこのままいかして semantic action のほうで self と定数を見分ける ようにしたらよいような. | TkCLASS TkLSHIFT expr term . case v_[1] when TkSELF : when TkCONSTANT : else : end . っていうかんじ.#1 と #2 を省いて expr のアクションで適当に値を返して やる. # 配列を返した方がいいかな? [TkCONSTANT, "Foo"] ができるから. -- 柳川和久 @ 東大阪市 . 大阪府 January 21, 1999 Translaters, traitors.