Boost Spirit の Qi(バージョン 2) から X3(バージョン 3) への移行では Grammar が無くなった2020年06月08日 12時02分39秒

BOOST に収録されている Spirit パーサ。C++ のみでパーサが書ける。

Qi の名前で通っているのはバージョン 2。バージョン 3 は X3 の名で出ている。X3 が出て、既に二年ぐらいは経っているようだ。

X3 のが出て結構経つのは知っていたが、Qi だけでも大きいので X3 には手を付けていなかった。

今回チュートリアルを読んでみると、Rule が強化され、それに伴ってGrammar が無くなったのが大きな変更点の様だ。

Qi 時代から、Rule と Grammar はかなり類似点があった。X3 になって、構文のクラスをマクロと auto 変数使って定義をするようになる。それらの拡張により、grammar を書く必要が無くなった様だ。

X3 の rule は Qi と比べると簡潔になり、読みやすく見通しが良くなった。

ただ、複数の grammar を使ったりして複雑だと移行に手間取りそうだ。