前回のあらすじ Ruby Parser開発日誌 (3) - かねこにっき LR parserの仕組みとInsert/Delete/ShiftによるError Recoveryについて、具体例を交えながら理解を深めました。 今回はいよいよError RecoveryをどうやってRubyに実装していくかを考えていきましょう。 実装方法を検討する 現状を確認する はじめに現在のRubyのparserがどのように実装されているのか確認しましょう。 Rubyではlexerは手書き、parserの生成にはBisonを使っています1。 大雑把にいうとparse.yをBisonに渡してparse.cとpars…