2007-10-09 07:56:30 -04:00
|
|
|
|
|
|
|
(library (psyntax compat)
|
2007-10-09 08:54:28 -04:00
|
|
|
(export define-record make-parameter parameterize format gensym
|
|
|
|
eval-core make-record-type symbol-value set-symbol-value!)
|
2007-10-09 07:56:30 -04:00
|
|
|
(import
|
2007-10-09 08:54:28 -04:00
|
|
|
(only (ikarus compiler) eval-core)
|
2007-10-09 07:56:30 -04:00
|
|
|
(rename (ikarus) (define-record sys.define-record)))
|
|
|
|
|
|
|
|
(define-syntax define-record
|
|
|
|
(syntax-rules ()
|
|
|
|
[(_ name (field* ...) printer)
|
|
|
|
(begin
|
|
|
|
(sys.define-record name (field* ...))
|
|
|
|
(module ()
|
|
|
|
(set-rtd-printer! (type-descriptor name)
|
|
|
|
printer)))]
|
|
|
|
[(_ name (field* ...))
|
|
|
|
(sys.define-record name (field* ...))])))
|
|
|
|
|