adjust mred/private/syntax for gracket2
original commit: bcb075543c4523b126ae9f5cb3f444045772ac30
This commit is contained in:
parent
80563786c3
commit
f58eef8582
|
@ -5,8 +5,9 @@
|
||||||
|
|
||||||
(provide defclass defclass*
|
(provide defclass defclass*
|
||||||
def/public def/public-final def/override def/override-final define/top case-args
|
def/public def/public-final def/override def/override-final define/top case-args
|
||||||
|
def/public-unimplemented define-unimplemented
|
||||||
maybe-box? any? bool? nonnegative-real? make-or-false make-box make-list make-alts
|
maybe-box? any? bool? nonnegative-real? make-or-false make-box make-list make-alts
|
||||||
make-literal symbol-in make-procedure
|
make-literal symbol-in integer-in real-in make-procedure
|
||||||
method-name init-name
|
method-name init-name
|
||||||
let-boxes
|
let-boxes
|
||||||
properties field-properties init-properties
|
properties field-properties init-properties
|
||||||
|
@ -100,6 +101,17 @@
|
||||||
(define-syntax-rule (symbol-in sym ...)
|
(define-syntax-rule (symbol-in sym ...)
|
||||||
(make-symbol '(sym ...)))
|
(make-symbol '(sym ...)))
|
||||||
|
|
||||||
|
(define (integer-in lo hi)
|
||||||
|
(make-named-pred (lambda (v) (and (exact-integer? v)
|
||||||
|
(<= lo v hi)))
|
||||||
|
(lambda ()
|
||||||
|
(format "exact integer in [~a, ~a]" lo hi))))
|
||||||
|
(define (real-in lo hi)
|
||||||
|
(make-named-pred (lambda (v) (and (real? v)
|
||||||
|
(<= lo v hi)))
|
||||||
|
(lambda ()
|
||||||
|
(format "real in [~a, ~a]" lo hi))))
|
||||||
|
|
||||||
(define (make-procedure arity)
|
(define (make-procedure arity)
|
||||||
(make-named-pred (lambda (p)
|
(make-named-pred (lambda (p)
|
||||||
(and (procedure? p)
|
(and (procedure? p)
|
||||||
|
@ -273,3 +285,15 @@
|
||||||
|
|
||||||
(define-syntax-rule (assert e) (void))
|
(define-syntax-rule (assert e) (void))
|
||||||
; (define-syntax-rule (assert e) (unless e (error 'assert "failed: ~s" 'e)))
|
; (define-syntax-rule (assert e) (unless e (error 'assert "failed: ~s" 'e)))
|
||||||
|
|
||||||
|
(define (unimplemented c m args) (error (if c (method-name c m) m) "unimplemented; args were ~e"
|
||||||
|
args))
|
||||||
|
|
||||||
|
(define-syntax (def/public-unimplemented stx)
|
||||||
|
(syntax-case stx ()
|
||||||
|
[(_ id)
|
||||||
|
(with-syntax ([cname (syntax-parameter-value #'class-name)])
|
||||||
|
#'(define/public (id . args) (unimplemented 'cname 'id args)))]))
|
||||||
|
|
||||||
|
(define-syntax-rule (define-unimplemented id)
|
||||||
|
(define (id . args) (unimplemented #f 'id args)))
|
||||||
|
|
Loading…
Reference in New Issue
Block a user