与えられた条件を解析して評価する
-
20-08-2019 - |
質問
私がこれをやろうとしているのは、.NETで次の場合の単純なパーサーを作成することです。
( [PART3]function1() AND [PART4]function7() ) OR [PART2]function90()
[PART]
評価の場所を示します (これは巨大なテキスト ファイルであると想定し、PART はテキスト ファイルを大きなチャンクに分割します)function()
は、このクエリを通じて呼び出すことができる私の文書化された関数です。戻り値true
またはfalse
- これに基づいて
True/False
と他の演算子の間で、結果を結合し、入力全体から最終的な True または False を 1 つ返したいと考えています。
このようなことを .NET で実装する最善の方法は何ですか?これを統合できる簡単なライブラリはありますか、それとも単純なパーサーを作成して自分で実行する必要がありますか?
追伸質問に適切なタイトルが見つかりませんでした。
解決
は、単純な条件のように見えるので、私の意見では、あなたは、フル機能のコンパイラのプロデューサーは必要ありません。私はあなたがスタックにあなたの条件をアンラップするためにそれを使用し、ポーランド記法をリバースnoreferrer">
他のヒント
プライムタイム(まだ)の準備ができていないが、それはいくつかの約束を示し、アイロニーを試してみてください。
アイロニーは、.NETプラットフォーム上で言語を実装するための開発キットです。これは、コンパイラの建設の全く新しい、合理化技術を実装するために、C#言語と.NET Framework 3.5の柔軟性とパワーを使用しています。 / LEXスタイルのソリューションアイロニーは、特殊なメタ言語で書かれた文法仕様から任意のスキャナやパーサコード生成を使用しないほとんどの既存のyaccとは異なり。皮肉にターゲット言語の文法は、文法の構築物を発現させるために、オペレータのオーバーロードを使用してC#で直接符号化されます。皮肉のスキャナとパーサモジュールは解析プロセスを制御するために、C#クラスとして符号化文法を使用します。
所属していません StackOverflow