0
我需要解析while循環一個C語法。說,例如,我需要解析如下代碼:
A = 20
B = 1
WHILE(A < 30)
//function call
A = A + B
ENDWHILE
我需要分析和評估表達式。我已經遵循了一些步驟並寫了一個語法,但是這不會讓我產生期望的輸出。根據上面的代碼,在條件檢查之後,循環內的函數必須被調用10次。
首先,我在哈希表中存儲A和B的值(參考:ANTLR_HASH_TABLE結構)和同時規則看起來是這樣的:
whileStatement : 'WHILE' condExpr 'ENDWHILE'
;
我能夠存儲和獲取哈希表中的值,但我堅持要被調用/打印那麼多次的函數調用。我想知道應該遵循什麼步驟來調用/打印該次數的函數。
關於如何實現這一點的任何想法都會有很大的幫助。
嗨rishab,上面的語法在輸入文件中接受任何數量的這樣的循環。但是,while循環需要解析直到條件失敗,這意味着我應該再次調用while規則。這個怎麼做?如果我是正確的,我應該實現遞歸下降解析方法嗎? –