2013-02-28 49 views
0

我希望能够确定我测试中计算的最后一个值,这是我正在测试的编译器(方案 - > cisc-assembly)。我已经有一个脚本来自动化大部分的测试和编译过程,但我想自动比较编译器的输出(存储在寄存器#0 [R0]中并打印),与chez(chez是编译器的标准)输出(不知道如何“抓住”最后计算的参数,这是我想要比较的)。在方案代码中显示最后一个参数

有没有办法做到这一点?或者我将不得不创建重复测试,其中一个在最后一个参数上使用硬编码打印(“显示”)?一个简单的测试文件的

实施例:

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

这编译为与存储的最后一个表达式的结果在一个特殊的寄存器集成-CISC组件的相当复杂的和长.c文件。

有没有办法以呼应的

((lambda (x) x) #t) 

最后的结果(这是#T),而无需修改手动根据桑切斯的方案的评价文件的显而易见的解决方案?

在此先感谢您的任何帮助或线索。

+1

您需要提供更多的信息。你有一个简明的例子吗? – GoZoner 2013-02-28 16:58:04

+0

我正在更新问题以包含更多信息 – 2013-02-28 17:07:05

回答

0

如果最后的“结果”来自一个计划的表情,那么你可以使用eval,例如:

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

有没有办法“评估”文件? – 2013-02-28 17:39:36

+0

有一个函数(加载)之后,您可以从文件中'评估'变量。但是你需要小心环境。 – GoZoner 2013-02-28 17:44:07

相关问题