GLR

FUTURE WORKSのところには「GLRは難しそうだ」などと書いたわけではありますが、WikipediaのGLRの説明BisonのGLRの説明を見ると、「caperの場合、コンフリクトするところでパーサのインスタンスを複製して、後続トークンを複製全部に与えるようにするだけで終わりじゃねえの?」的な妄想がふつふつと湧き上がってきます。

しかしBisonのドキュメントを読み進めると、さすがにそこまで甘くもないのがわかりました。つまり、並列でパーサを走らせると、いったん受理(セマンティックアクション発生)したあとに「やっぱそれなし」的イベントが発生することがあるので、それに対する処置を考えておかねばならないのです。

まあ、キューイングしておくしかないでしょうな。それでもboost必須でよいならbindしたものつっこんでおけば終わりな感じで結構簡単にできそうな気がしなくもないですが、どうでしょう。

いずれにせよ、動的メモリ割り当てなしで、というのはほぼ不可能だろうなあ。それやろうとすると自分でアロケーター作ることにしかならなそう。