0
我正在使用來自ANTLR4的訪問者在c#中開發解釋器。在我的語法 ,我有一個循環的規則和分配如下規則:如何檢查我的作業是否使用正確的變量?
for_stmt
: FOR EACH ID IN collection DO NEWLINE+
(block NEWLINE*)?
END FOR
;
set_stmt
:SET ID '.' ID TO arithExpr
;
block
: for_stmt
| set_stmt
;
裏面的for循環中,我們可以有一組語句是這樣的:
for each record in recordCollection do
set record.name to 10
end for
的記錄在set語句中使用的內容必須與在循環中使用的記錄相同。我如何檢查這個?