0

ループ コンテンツをレプリケートする for ループ プリプロセッサ ディレクティブを含む言語用の Flex/Bison パーサーを作成しています。例:

for (i=0; i<2; i++)
    record$i = value$i;
endfor

私のプリプロセッサは次の出力を生成する必要があります

record0 = value0;
record1 = value1;

ネストされたループをサポートする必要があります。Flex/Bison を使用してこれを実装する方法を誰かが提案できますか。

ありがとう!

4

1 に答える 1

1

Flex と bison は解析ツールです。したがって、それらを使用して言語を解析して内部形式に変換し、その内部形式を評価して必要な出力を生成できます。これらは実際には 2 つの完全に異なるタスクであり、使用する内部形式によってのみ関連付けられます (これは、ほぼ何でもかまいません。最適なものは、言語が何であるか、およびプリプロセッサに何をさせたいかによって異なります)。 .

全体的に、あなたの質問は非常に広いため、「flex と bison を使用して言語を解析し、ある種の単純なインタープリターを使用して結果を評価する」よりも詳細な回答に反対します。正確にそれを行う方法については、約 30 または 40 の個別の質問です。

于 2012-08-01T22:41:00.063 に答える