アルゴリズムのアニメーションを生成するソフトウェアを作成しています。これらのアルゴリズムは、C(多かれ少なかれC指向の擬似コード)に近いインタプリタ言語で書かれています。したがって、私のプログラムはこれらの言語で書かれたアルゴリズムを解釈する必要があります。また、この言語は、ますます多くの機能をサポートするために常に増加します。ここでの重要な問題は、ライブラリを検索して言語を簡単に増やし、同じプログラムにさまざまなパーサーを簡単に統合できるようにすることです。アプリはGPLの下でライセンスされたC++で書かれています。
オブジェクト指向パーサーは確かに私のターゲットソリューションです。この目的で優れたライブラリを選択するための支援が必要です。また、ライブラリがマルチプラットフォームであり、コモンズディストリビューションの公式リポジトリ(Ubuntu、Suseなど)で利用できることが望ましいです。
実際、私は次の2つのライブラリ/ツールを多かれ少なかれよく知っています。
- Flex / Bison ++:どちらもFlex / Bisonラッパーであり、Cコードの代わりにC ++コードを生成し、クラスの名前を選択できます。問題:Flex / Bison ++をインストールすると、Flex/Bisonが上書きされます。ユーザーが私のコードをコンパイルしたいのであれば、ユーザーを複雑にしたくありません。さらに、CMakeはライブラリのバージョン番号の検索に失敗します。これは手動で解決できますが、エレガントではありません。
- Boost.Spirit:これまでの問題はなく、上記で説明したすべての望ましい機能と一致します。しかし、大きな言語を解析して文法のあいまいさを解決するのは良くないことを読みました。さらに、コンパイル時間は膨大です。しかし、私はそれが建設的な方法で文法を構成できるのが大好きです。これは、コード/言語/プログラムを拡張可能にするために非常に重要です。
あなたの推薦は何ですか?