Boost Spirit の Qi パーサーの文法は素晴らしく、私はいつもそれらを小さなことのために使用しています。ただし、別の文法を作成できるようにしたい場合もあります。
これは、適切な文法を #include してそれらをつなぎ合わせることにより、1 回のコンパイルで簡単にオールインワンで実行できます。ただし、これにより、コンパイル時間が屋根を通過し始めます。他にも欠点があります。
個別にコンパイルされた文法を構成する方法はありますか? 言い換えれば、ヘッダー ファイルで文法のインターフェイスを定義し、テンプレートを実装し、別のコンパイル ユニットで特定の Iterator のインスタンスを作成してから、完全なテンプレートがなくても、別の文法を使用できるようにしたいと考えています。定義はコンパイル時に表示されます。つまり、文法をルールで間接的に使用できるようにしたいのです。
そのようなことは可能ですか?もしそうなら、どのようにそれについて行くでしょうか?