Boost::Spiritで構文解析
Boost::Spiritとは
C++で構文解析を書くためのライブラリです。yacc, lex といったものを使用せず、C++だけで構文解析を行う事ができます。 JSONパーサ、電卓、コンフィグの読み込み、オレオレ・スクリプト、プロトコル・パーサなど、幅広く活用できます。
このガイドを書いた目的
このライブラリは、とても面白いのでワクワク感があります。この面白さを伝えたい。と同時に、デリケートな側面もあり、ちょっとした事で心が折れそうになるコンパイルエラーに遭遇したり、挙動に悩まれたりする事があります。Spiritが発表されて、時間がたちました。巷にある情報は古いバージョンのものが多く、情報ソースとしては役に立たないものが増えてきたように思います。日本語の文字列処理を取り扱う情報も少ないので、本ライブラリを本格的に採用するには敷居が高いです。こういったガイドを書ける立場にある人も、自分が思っている以上に少ないのかもしれません。これを書くことによって、世の中にもっと面白いものが出てくる事を願って書きました。
本ガイドの進め方
小さなサンプルを元に理解を深めて行きます。動くコードをかけるようになって、なんぼのものというスタイルです。Spiritの構成として、Qi,Pheonix,Karma,Lex とありますが、Qi と Pheonix のみ扱います。