From: Minero Aoki Date: 2000-12-25T03:01:28+09:00 Subject: [ruby-list:26831] Re: racc -E あおきです。 In mail "[ruby-list:26768] Re: racc -E" Ueno Katsuhiro wrote: > うえの@ぶるーすかいです。 > うちでも racc-1.2.6 から 1.3.2 に上げると今まで動いていた > スクリプトが動かなくなりました。 > > 問題点を絞り込んでみたところ、こんな文法ファイルを racc-1.3.2 に > 読ませると ParseError になるようです。 再現例を増やしてくださってありがとうございます(皮肉でなく)。 ふなばさんの報告にあったバグと原因は同じでした。 かなり致命的なバグだったのでこれからすぐに 1.3.3 を出します。 ------------------------------------------------------------------- 青木峰郎 diff -u -r1.12 format.rb --- format.rb 2000/12/17 17:34:43 1.12 +++ format.rb 2000/12/24 16:58:32 @@ -194,21 +194,21 @@ map = '' maxdup = RE_DUP_MAX curr = nil - ex = '-' - ne = '.' while i < as do ii = i + 1 if arr[i] then ii += 1 while ii < as and arr[ii] - map << (curr = ex) + curr = '-' else ii += 1 while ii < as and not arr[ii] - map << (curr = ne) + curr = '.' end offset = ii - i - if offset > 1 then + if offset == 1 then + map << curr + else while offset > maxdup do map << "#{curr}{#{maxdup}}" offset -= maxdup