#lang racket (require "test-util.rkt") (require "cvar-to-bril.rkt") (require "uniquify.rkt") (require "remove-complex-oper.rkt") (require "explicate-control.rkt") (require "rvar.rkt") (require bril/interpreter) (define listings (list (Program '() (Prim '+ (list (Int 1) (Int 2)))))) (define (evaluate-bril-main bril-program) (cadr (interp-bril bril-program "main"))) (define (pass program) (cvar-to-bril (explicate-control (remove-complex-opera*-2 (uniquify program))))) (for ([program listings]) (test-eq (interp-RVar (list-ref listings 0)) (evaluate-bril-main (pass (list-ref listings 0)))))