0

テストしているコンパイラ (スキーム -> cisc アセンブリ) のテストで計算された最後の値を特定できるようにしたいと考えています。

ほとんどのテストとコンパイル手順を自動化するスクリプトは既にありますが、コンパイラの出力 (レジスタ #0 [R0] に格納され、出力される) と、chez (chez はコンパイラ)出力(比較したい最後の計算された引数を「取得」する方法がわかりません)。

これを行う方法はありますか?または、最後の引数にハードコードされた印刷 (「表示」) を使用して、重複したテストを作成する必要がありますか?

簡単なテスト ファイルの例:

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

これは、最後の式の結果を特殊レジスタに格納する統合 cisc アセンブリを使用して、かなり複雑で長い .c ファイルにコンパイルされます。

の最後の結果をエコーする方法はありますか

((lambda (x) x) #t)

(これは #t です) Chez-scheme の評価に基づいて手動でファイルを変更するという明らかな解決策がなければ??

ヘルプやリードをよろしくお願いします。

4

1 に答える 1

0

eval最後の「結果」がScheme式からのものである場合、たとえば次のように使用できます。

> (eval '((lambda (x) x) 'yes) (scheme-report-environment 5))
yes
于 2013-02-28T17:15:38.973 に答える