document compiler/zo-parse and compiler/decompile
svn: r12947 original commit: 7aec6b876181bea97b43f16fbe2c237f946d06b3
This commit is contained in:
parent
710b66d58c
commit
113935619f
|
@ -486,29 +486,33 @@
|
||||||
(define-syntax defstruct
|
(define-syntax defstruct
|
||||||
(syntax-rules ()
|
(syntax-rules ()
|
||||||
[(_ name fields #:mutable #:inspector #f desc ...)
|
[(_ name fields #:mutable #:inspector #f desc ...)
|
||||||
(**defstruct name fields #f #t desc ...)]
|
(**defstruct name fields #f #t #f desc ...)]
|
||||||
[(_ name fields #:mutable #:transparent desc ...)
|
[(_ name fields #:mutable #:transparent desc ...)
|
||||||
(**defstruct name fields #f #t desc ...)]
|
(**defstruct name fields #f #t #f desc ...)]
|
||||||
|
[(_ name fields #:mutable #:prefab desc ...)
|
||||||
|
(**defstruct name fields #f #t #t desc ...)]
|
||||||
[(_ name fields #:mutable desc ...)
|
[(_ name fields #:mutable desc ...)
|
||||||
(**defstruct name fields #f #f desc ...)]
|
(**defstruct name fields #f #f #f desc ...)]
|
||||||
[(_ name fields #:inspector #f desc ...)
|
[(_ name fields #:inspector #f desc ...)
|
||||||
(**defstruct name fields #t #t desc ...)]
|
(**defstruct name fields #t #t #f desc ...)]
|
||||||
[(_ name fields #:transparent desc ...)
|
[(_ name fields #:transparent desc ...)
|
||||||
(**defstruct name fields #t #t desc ...)]
|
(**defstruct name fields #t #t #f desc ...)]
|
||||||
|
[(_ name fields #:prefab desc ...)
|
||||||
|
(**defstruct name fields #t #t #t desc ...)]
|
||||||
[(_ name fields desc ...)
|
[(_ name fields desc ...)
|
||||||
(**defstruct name fields #t #f desc ...)]))
|
(**defstruct name fields #t #f #f desc ...)]))
|
||||||
|
|
||||||
(define-syntax-rule (**defstruct name ([field field-contract] ...) immutable?
|
(define-syntax-rule (**defstruct name ([field field-contract] ...) immutable?
|
||||||
transparent? desc ...)
|
transparent? prefab? desc ...)
|
||||||
(with-togetherable-scheme-variables
|
(with-togetherable-scheme-variables
|
||||||
()
|
()
|
||||||
()
|
()
|
||||||
(*defstruct (quote-syntax/loc name) 'name
|
(*defstruct (quote-syntax/loc name) 'name
|
||||||
'([field field-contract] ...)
|
'([field field-contract] ...)
|
||||||
(list (lambda () (schemeblock0 field-contract)) ...)
|
(list (lambda () (schemeblock0 field-contract)) ...)
|
||||||
immutable? transparent? (lambda () (list desc ...)))))
|
immutable? transparent? prefab? (lambda () (list desc ...)))))
|
||||||
|
|
||||||
(define (*defstruct stx-id name fields field-contracts immutable? transparent?
|
(define (*defstruct stx-id name fields field-contracts immutable? transparent? prefab?
|
||||||
content-thunk)
|
content-thunk)
|
||||||
(define (field-name f) ((if (pair? (car f)) caar car) f))
|
(define (field-name f) ((if (pair? (car f)) caar car) f))
|
||||||
(define (field-view f)
|
(define (field-view f)
|
||||||
|
@ -634,7 +638,9 @@
|
||||||
(list flow-spacer flow-spacer
|
(list flow-spacer flow-spacer
|
||||||
(to-flow (make-element
|
(to-flow (make-element
|
||||||
#f
|
#f
|
||||||
(list (to-element '#:transparent)
|
(list (if prefab?
|
||||||
|
(to-element '#:prefab)
|
||||||
|
(to-element '#:transparent))
|
||||||
(schemeparenfont ")"))))
|
(schemeparenfont ")"))))
|
||||||
'cont
|
'cont
|
||||||
'cont))]
|
'cont))]
|
||||||
|
@ -652,7 +658,9 @@
|
||||||
(list flow-spacer flow-spacer
|
(list flow-spacer flow-spacer
|
||||||
(to-flow (make-element
|
(to-flow (make-element
|
||||||
#f
|
#f
|
||||||
(list (to-element '#:transparent)
|
(list (if prefab?
|
||||||
|
(to-element '#:prefab)
|
||||||
|
(to-element '#:transparent))
|
||||||
(schemeparenfont ")"))))
|
(schemeparenfont ")"))))
|
||||||
'cont
|
'cont
|
||||||
'cont))]
|
'cont))]
|
||||||
|
|
Loading…
Reference in New Issue
Block a user