From: shugo@... (Shugo Maeda) Date: 1999-01-09T20:39:08+09:00 Subject: [ruby-list:11520] Re: parser generator 前田です。 keiju@rational.com (石塚圭樹 ) writes: > >ですが、ないよりはあるほうがもちろんいいですから、要望があれば > >つくります。文法は… > > > > XXXX: pat1 @act pat2 ; > > @act do > > # 埋めこみアクション > > end do > > # 通常のアクション > > end > > > >なんてのでどうでしょう? > > うーん. 何だか分かりにくいような... まだ, yacc風の方が... do/endを使うなら、 XXXX : pat1 do # 埋めこみアクション end pat2 do # 通常のアクション end みたいに書けるとうれしいです。 # ってyaccと同じですけど;-) {}も使えるとさらにうれしいです。イテレータブロックと対称的で。 ついでに、バグ報告。 Parser#parseerrorでParseErrorをraiseする前にエラーに なってしまいます。 --- parser.rb.orig Sat Jan 9 20:03:18 1999 +++ parser.rb Sat Jan 9 20:04:48 1999 @@ -116,6 +116,9 @@ end def parseerror( state, sstack, vstack, tact, act ) + ctok = token2s( sstack[-1] ) + ntok = token2s( peep_token ) + mes = "Racc parse error\n" mes << " unexpected token simbol '#{ctok}'\n\n" mes << " state = #{state[-1].to_s}\n" ところで、あおきさんの環境ってタブ幅2ですか? PythonじゃなくてRubyを選んで正解でしたね:-) -- 前田 修吾 (mailto:shugo@aianet.ne.jp)