add parameters

This commit is contained in:
Stephen Chang 2016-07-12 16:52:43 -04:00
parent cef8660c75
commit b3fb830a46

View File

@ -28,6 +28,11 @@
(define-syntax- x (make-rename-transformer ( y : ty.norm))) ...
(ro:define-symbolic y ... pred-))]])
;; ----------------------------------------------------------------------------
;; Racket stuff
(define-type-constructor Param #:arity = 1)
(define-rosette-primop boolean? : ( Bool Bool))
(define-rosette-primop integer? : ( Int Bool))
(define-rosette-primop string? : ( String Bool))
@ -46,6 +51,16 @@
--------
[ [[_ (ro:if e_tst- e1- e2-)] : ( τ1 τ2)]]])
(define-typed-syntax make-parameter
[(_ e) : (~Param τ_expected)
[ [[e e-] : τ_expected]]
--------
[ [[_ (ro:make-parameter e-)]]]]
[(_ e)
[ [[e e-] : τ]]
--------
[ [[_ (ro:make-parameter e-)] : (Param τ)]]])
;; ----------------------------------------------------------------------------
;; BV stuff