added scheme/fixnum
svn: r17391 original commit: 195d608fe57e13e07397d0c59e86c22e9c214bfb
This commit is contained in:
commit
227924d8da
|
@ -57,14 +57,18 @@
|
|||
(lambda (stx)
|
||||
(syntax-case stx ()
|
||||
[(_ id contract desc)
|
||||
(with-syntax ([(header result)
|
||||
(with-syntax ([(header result (body-stuff ...))
|
||||
(syntax-case #'contract (->d -> values)
|
||||
[(->d (req ...) () (values [name res] ...))
|
||||
#'((id req ...) (values res ...))]
|
||||
#'((id req ...) (values res ...) ())]
|
||||
[(->d (req ...) () #:pre-cond condition (values [name res] ...))
|
||||
#'((id req ...) (values res ...) ((bold "Pre-condition: ") (scheme condition) "\n" "\n"))]
|
||||
[(->d (req ...) () [name res])
|
||||
#'((id req ...) res)]
|
||||
#'((id req ...) res ())]
|
||||
[(->d (req ...) () #:pre-cond condition [name res])
|
||||
#'((id req ...) res ((bold "Pre-condition: ") (scheme condition) "\n" "\n" ))]
|
||||
[(->d (req ...) () #:rest rest rest-ctc [name res])
|
||||
#'((id req ... [rest rest-ctc] (... ...)) res)]
|
||||
#'((id req ... [rest rest-ctc] (... ...)) res ())]
|
||||
[(->d (req ...) (one more ...) whatever)
|
||||
(raise-syntax-error
|
||||
#f
|
||||
|
@ -79,7 +83,7 @@
|
|||
stx
|
||||
#'contract)]
|
||||
[(-> result)
|
||||
#'((id) result)]
|
||||
#'((id) result ())]
|
||||
[(-> whatever ...)
|
||||
(raise-syntax-error
|
||||
#f
|
||||
|
@ -95,7 +99,7 @@
|
|||
#'contract)])])
|
||||
(values
|
||||
#'[id contract]
|
||||
#'(defproc header result . desc)
|
||||
#'(defproc header result body-stuff ... . desc)
|
||||
#'(scribble/manual)
|
||||
#'id))])))
|
||||
|
||||
|
|
|
@ -108,7 +108,9 @@ form.}
|
|||
(proc-doc id contract desc-expr)
|
||||
([contract (-> result)
|
||||
(->d (arg ...) () (values [id result] ...))
|
||||
(->d (arg ...) () #:pre-cond expression (values [id result] ...))
|
||||
(->d (arg ...) () [id result])
|
||||
(->d (arg ...) () #:pre-cond expression [id result])
|
||||
(->d (arg ...) () #:rest id rest [id result])])]{
|
||||
|
||||
Like @scheme[proc-doc], but supporting contract forms that embed
|
||||
|
|
Loading…
Reference in New Issue
Block a user