在方案代码中显示最后一个参数

时间:2013-02-28 16:31:21

标签: scheme

我希望能够确定我正在测试的编译器(scheme - > cisc-assembly)测试中计算的最后一个值。

我已经有一个脚本来自动化大多数测试和编译过程,但是我希望自动比较编译器的输出(存储在寄存器#0 [R0]和打印中)与chez的比较(chez是编译器的标准)输出(不知道如何“抓取”最后计算的参数,这就是我想要比较的。)

有办法做到这一点吗?或者我是否必须创建重复测试,其中一个在最后一个参数上使用硬编码打印(“显示”)?

简单测试文件的示例:

;---------------------
((lambda (x) x) #t)
;---------------------

这会编译成一个相当复杂且长的.c文件,其中包含集成cisc程序集,它将最后一个表达式的结果存储在一个特殊的寄存器中。

有没有办法回应

的最后结果
((lambda (x) x) #t)

(这是#t)没有明显的手动修改文件的解决方案基于chez-scheme的评估?

提前感谢任何帮助或潜在客户。

1 个答案:

答案 0 :(得分:0)

如果最后一个'结果'来自Scheme表达式,那么您可以使用eval,例如:

> (eval '((lambda (x) x) 'yes) (scheme-report-environment 5))
yes