2015-07-17 Schemeで作るPEGパーサー PEG パーサーが欲しくなったのでPEGパーサーをSchemeで書いてみました。kmizuさんの記事にあるようにPEGは受理言語のクラスがLR(k)より真に大きい(つまりLL(k)より大きい)上にメモ化を行うだけで線形時間で終わるというとてもいい性質を持った文法です。 PEG基礎文法最速マスター - kmizuの日記kmizu.hatenablog.com Scalaで作るPackrat Parserコンビネータ - kmizuの日記kmizu.hatenablog.com 準備 さて、これをSchemeで実装してみます。基本的にはkmizuさんの記事と同じものを再実装していくのですが、せっかくなのでSchemeらしくミニマルな設計にしたいと思います。 まずPEGの文法をおさらいしておきます。PEGは終端記号と非終端記号といくつかの演