commit 227924d8da6d11718a4fdcba2db2a805748d1126
parent 41d824ef5d7a9b82c7324677b88aa46f97d304ed
Author: Robby Findler <robby@racket-lang.org>
Date: Wed, 23 Dec 2009 15:41:40 +0000
added scheme/fixnum
svn: r17391
original commit: 195d608fe57e13e07397d0c59e86c22e9c214bfb
Diffstat:
2 files changed, 12 insertions(+), 6 deletions(-)
diff --git a/collects/scribble/srcdoc.ss b/collects/scribble/srcdoc.ss
@@ -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))])))
diff --git a/collects/scribblings/scribble/srcdoc.scrbl b/collects/scribblings/scribble/srcdoc.scrbl
@@ -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