eoc/test-cvar-to-bril.rkt

25 lines
684 B
Racket

#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))))
(Program '() (Prim '+ (list (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)))))