Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- [`(- ,v)
- (define-values (flat-exp flat-assigns flat-all-vars) (flatten v))
- (define new-var (gensym `tmp))
- (define new-assign `(assign ,new-var (- ,flat-exp)))
- (values new-var (append flat-assigns (list new-assign)) (append flat-all-vars (list new-var)))]
- [`(+ ,v1 ,v2)
- (define-values (LHS-exp LHS-assigns LHS-vars) (flatten v1))
- (define-values (RHS-exp RHS-assigns RHS-vars) (flatten v2))
- (define new-var (gensym `tmp))
- (define new-assign `(assign ,new-var (+ ,LHS-exp ,RHS-exp)))
- (values new-var (append LHS-assigns RHS-assigns (list new-assign)) (append LHS-vars RHS-vars (list new-var)))]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement