#lang racket (require "test-util.rkt") (require "cvar.rkt") (define seq-1 (Return (Int 0))) (define seq-2 (Seq (Assign (Var 'x) (Int 42)) (Return (Int 42)))) (define seq-3 (Seq (Assign (Var 'x) (Int 42)) (Return (Prim '+ (list (Int 1) (Var 'x)))))) (define seq-4 (Return (Prim 'read '()))) (define (make-start-seq seq) (CProgram '() `((start . ,seq)))) (test-eq (interp-CVar (make-start-seq seq-1)) 0) (test-eq (interp-CVar (make-start-seq seq-2)) 42) (test-eq (interp-CVar (make-start-seq seq-3)) 43) (with-input-from-num-list '(21) (lambda () (test-eq (interp-CVar (make-start-seq seq-4)) 21)))