From: Toshiro Kuwabara Date: 2000-01-20T01:01:52+09:00 Subject: [ruby-list:20291] Re: RD with method index (again) Toshです。 In message "[ruby-list:20289] Re: RD with method index (again)" on 00/01/20, Minero Aoki writes: >> あと、読み込みながら一行ずつパーサに放り込んでって、エラー時の >> IO.linenoって手もあるでしょうか。 >> ただ、これだと、今のパーサではインラインのエラー行表示がちょっと >> 後ろにずれちゃいますが。 > >next_token の中で、shift ではなくインデックスを使って指定するように >すればうまくいきませんか? > > while line = @src.shift > >を > while line = @src[ @index ] > >というふうに。 あ、いや、そういう意味ではなくて、 * 現在のRDtoolのパーサはTextBlockに還元された時点でインライン用の パーサに渡してインラインをパースしている。 * したがって、インラインをパースしているときには、IO#linenoの値は TextBlockの最後の行。 * つまりインラインがその途中でエラーになるとエラー行表示はちょっと 大きい値を返して来ることに。 ということです。 --- Tosh Toshiro Kuwabara