我是新來的計劃,很難與汽車和司機使用。我在AST中有一個AST字符串字面值。使用汽車和司機
(define ast '(program
((assign (var i int) (call (func getint void int)()))
(assign (var j int) (call (func getint void int)()))
(while (neq (var i int) (var j int))
((if (gt (var i int) (var j int))
((assign (var i int) (minus (var i int) (var j int))))
((assign (var j int) (minus (var j int) (var i int)))))))
(call (func putint int void) ((var i int)))))
)
我知道汽車返回ast的頭。所以
(car ast)
返回的程序。
我很困惑如何使用car和cdr從ast獲取字符串,例如'assign',while,'if,and'call。
你想要做什麼'分配等?只要列出所有這些清單,或者您是否正在嘗試解釋AST? –
我正在嘗試遍歷AST並解釋它。 – BearBearBear
您是否熟悉遞歸?你可以嘗試寫一個遞歸函數來做到這一點? –