やあ、
while ループを解析するための C 文法が必要です。たとえば、次のコードを解析する必要があるとします。
A = 20
B = 1
WHILE(A < 30 )
//function call
A = A + B
ENDWHILE
式を解析して評価する必要があります。いくつかの手順に従って文法を書きましたが、目的の出力が得られません。上記のコードによると、条件チェック後にループ内の関数を 10 回呼び出す必要があります。
まず、A と B の値をハッシュ テーブル (ref : ANTLR_HASH_TABLE 構造体) に格納しています。while ルールは次のようになります。
whileStatement : 'WHILE' condExpr 'ENDWHILE'
;
ハッシュテーブルから値を保存して取得することはできますが、何度も呼び出されたり出力されたりする関数呼び出しに行き詰まっています。その回数関数を呼び出し/印刷するためにどの手順を実行する必要があるかを知りたいです。
これをどのように達成する必要があるかについてのアイデアは、非常に役立ちます。