私は C++ でプロジェクトをコーディングしています。テキスト ファイル ( usergrammar.txt ) に、人間が読み書きできる形式で、オブジェクトを定義するユーザー定義の文法を配置する方法を探しています。
これが完了したら、これらのオブジェクトの一部をコードでインスタンス化し、作成したインスタンスを別のファイル ( instances.txt ) に、常に人間がアクセスできる形式で保存できるようにしたいと考えています。この 2 番目のファイルは、正しく読み取られる最初のファイルに明らかに依存しています。
私が問題を抱えているのは、文法を定義して解析する方法です。私はBoost::Spiritを見てきましたが、最初のファイルを読むのはうまくいきますが(そのルールは事前に定義されているため)、Spiritの文法は定義されているだけなので、2番目のファイルには適用できないと思いますコンパイル時であり、実行時にロードできません(少なくともそれは私が理解したことです)。
今私は ENBF フォームについて読んでいますが、言語規則があるだけでなく、各オブジェクトが別のオブジェクトに含まれるたびに特定の異なる名前/説明/オプションを持っているという問題もあります (たとえば、オブジェクトの色がある場合、その中の整数は赤、青、黄色と呼ばれますが、オブジェクトが定規の場合、その整数は長さと呼ばれます)、これらの情報をファイルに含める方法もあります。それらを対応する値に正しく関連付けます。
このようなプロジェクトのために、何を見て、何を学び、何を使用し、何をするべきかについての指針はありますか? 前もって感謝します。