for 語句我們用exec_for()函數來執行,if我們用exec_if來執行。一種方法是可以對應編寫一個pass函數,例如pass_for(),pass_if(),這樣對于statements我們只需要一個pass_statements()函數就可以了,pass_statements()遞歸調用pass_for,pass_if,這樣就可以過濾掉不需要執行的語句了。pass函數只改變current的值而并不執行被pass掉的那些語句?! ?br /> 顯然pass_statemts除了不修改符號表,不做其它動作外,其它邏輯流程與exec_statements函數相同。這顯然不夠優雅。