yaccまたはBison and Flexを使用してforeachキーワードを作成する
-
05-07-2019 - |
質問
インタープリター型プログラミング言語を開発しました。それはCに強く基づいています。問題は、 foreach
ディレクティブを追加したいのですが、方法がわからないことです。
パーサーおよびレクサージェネレーターとしてBisonとFlexを使用しています。
解決
文法では、次のような式が必要です。
foreach := foreach ( name in name ) { statements }
これを解析すると、最初に変数を割り当てる追加のステートメントを使用して、ASTのwhileループに直接変換できるはずです。
これは最も簡単な方法のように思えますが、複数の反復可能なデータ型(たとえば、リストと配列)にはおそらく制限があります。この場合、次の要素を取得するための一貫した方法を持つように、すべての反復可能要素を統合することを検討できます。
所属していません StackOverflow