0

ある種の単純な言語を解析する必要があることに気づきました。正規表現よりも表現力のある言語ですが、非常に小さいため、bison のような強力なものを使用する価値はありません。

最終的には、単体テストを使用してアドホックパーサーを実行し、その正確性を保証します。単一のトークンを抽出する関数と、トークンを抽出し続ける別の関数を作成し、いくつかのループと多くの ifs によって言語を解析します。しかし、それは言語を解析する正しい方法ではありません。誰かがコードを見たとしても、それが意図されていることを理解できないでしょう。

小さな言語をすばやく解析するためのより良いソリューションを探していました。ライブラリ、またはこの問題を解決するための何らかの手法。

4

1 に答える 1

2

これは、言語を解析するための完全に優れた方法です。トークン化部分と解析部分を分離し、さまざまな種類のトークンを保持するために 1 つまたは 2 つの列挙型を使用します。特にかなり単純な言語の場合、そのようなアプローチが汚れたコードにつながる理由がわかりません。

それ以外は、bison は正常に動作するはずであり、それを使用するための知的オーバーヘッドはそれほど大きくありません。

于 2013-02-03T03:12:29.543 に答える