我目前正在做一個實驗,在那裏我正在實現一箇舊的遊戲腳本語言的解釋器。這是一種基於第四語言,所以我認爲將指令(一旦驗證和完全處理)放入一個大名單將是相當容易的。如何根據列表條目調用函數?
一旦我得到了列表中的代碼,我試圖遍歷整個程序中的for循環,每次處理一條指令。某些項目,比如字符串,可以放在一個保存當前棧的變量上,這很容易。但是我卡住的地方是發生命令。
我有一個有效的函數的大清單,我希望它在任何指令匹配的地方都會調用相關的函數。
因此,舉例來說,如果我有:
"Hello, world!" notify
...代碼將檢查通知在列表中,然後執行通知功能。底線是:如何將字符串轉換爲函數名稱?
所以你想''你好,世界!「 notify'表現得像'notify(「Hello,world!」)'? – 2012-03-05 19:23:22
嗯,它實際上會調用通知函數,它會採用堆棧變量並彈出所需的項目來執行通知,但或多或少,是的。 – Kelketek 2012-03-05 19:25:33
我不熟悉Python中的正則表達式使用,但它看起來像你必須匹配字符串與引號(排他性)中的所有內容,並確保您檢查轉義的引號。然後您將使用捕獲組來確定要調用哪個函數。解析總是很麻煩。 – 2012-03-05 19:28:52