我正在爲一種非常簡單的編程語言開發一個非常簡單的解釋器,並且我正在嘗試提取一段代碼來解釋條件是否滿足。目前,該代碼是要評估的關鍵字compare
和endcompare
什麼,我想發生之間如下:如何自動創建Lua表
- 從令牌的原始列表後可達
endcompare
刪除一切,保持compare
在該列表中。 - 將刪除的標記放入另一個表中,在原始表中找到
compare
時,這個表不包括endcompare
。
基本上:
original = {"a", "b", "c", "compare", "this", "please", "whatever", "endcompare", "d"}
這個 「魔力」 功能後,產生如下:
new = {"a", "b", "c", "compare", "d"}
c = {"this", "please", "whatever"}
在這種情況下,new
將被評估,並且遇到該關鍵字compare
時,評估c
並返回到new
。
我到目前爲止已經有一些嘗試和沒有一個是成功的,除非你扭轉了表的一部分或跳過所有其他標記...
我將如何去創造說桌子嗎?
OK,所以...什麼是你的問題嗎? –
@NicolBolas我意識到我在表達我的問題時並不十分精確(我的意思是我沒有) – user1610406
你已經有了解析器來適應你的這種「語言」嗎?它現在爲你創建像'original'這樣的表嗎?你有能夠「評估」新表的代碼,並理解什麼時候它看到「比較」條目? (如何知道要比較的表是什麼表格? –