質問

インタープリター型プログラミング言語を開発しました。それはCに強く基づいています。問題は、 foreach ディレクティブを追加したいのですが、方法がわからないことです。

パーサーおよびレクサージェネレーターとしてBisonとFlexを使用しています。

役に立ちましたか?

解決

文法では、次のような式が必要です。

foreach := foreach ( name in name ) { statements }

これを解析すると、最初に変数を割り当てる追加のステートメントを使用して、ASTのwhileループに直接変換できるはずです。

これは最も簡単な方法のように思えますが、複数の反復可能なデータ型(たとえば、リストと配列)にはおそらく制限があります。この場合、次の要素を取得するための一貫した方法を持つように、すべての反復可能要素を統合することを検討できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top