macro-stepper: update for new letrec-syntaxes+values expansion
original commit: 0f0dd65d83ca836af798d132f49b0986d1d142d0
This commit is contained in:
parent
15ad6d8edb
commit
d19c2208c9
|
@ -120,7 +120,8 @@
|
||||||
(define-struct (lderiv node) (?1 derivs) #:transparent)
|
(define-struct (lderiv node) (?1 derivs) #:transparent)
|
||||||
|
|
||||||
;; A BDeriv is
|
;; A BDeriv is
|
||||||
;; (make-bderiv <Node(Stxs)> (list-of BRule) (U 'list 'letrec) LDeriv)
|
;; (make-bderiv <Node(Stxs)> (list-of BRule) (U 'list 'letrec) LDeriv/Deriv)
|
||||||
|
;; pass2 is Deriv if 'letrec, LDeriv if 'list
|
||||||
(define-struct (bderiv node) (pass1 trans pass2) #:transparent)
|
(define-struct (bderiv node) (pass1 trans pass2) #:transparent)
|
||||||
|
|
||||||
;; A BRule is one of
|
;; A BRule is one of
|
||||||
|
|
|
@ -504,8 +504,8 @@
|
||||||
[(enter-block (? BlockPass1) block->list (? EL))
|
[(enter-block (? BlockPass1) block->list (? EL))
|
||||||
(make bderiv $1 (and $4 (wlderiv-es2 $4))
|
(make bderiv $1 (and $4 (wlderiv-es2 $4))
|
||||||
$2 'list $4)]
|
$2 'list $4)]
|
||||||
[(enter-block BlockPass1 block->letrec (? EL))
|
[(enter-block BlockPass1 block->letrec (? EE))
|
||||||
(make bderiv $1 (and $4 (wlderiv-es2 $4))
|
(make bderiv $1 (and $4 (list (wderiv-e2 $4)))
|
||||||
$2 'letrec $4)])
|
$2 'letrec $4)])
|
||||||
|
|
||||||
;; BlockPass1 Answer = (list-of BRule)
|
;; BlockPass1 Answer = (list-of BRule)
|
||||||
|
|
|
@ -506,10 +506,12 @@
|
||||||
[#:pass2]
|
[#:pass2]
|
||||||
[#:if (eq? trans 'letrec)
|
[#:if (eq? trans 'letrec)
|
||||||
(;; FIXME: foci (difficult because of renaming?)
|
(;; FIXME: foci (difficult because of renaming?)
|
||||||
[#:walk (wlderiv-es1 pass2) 'block->letrec])
|
[#:walk (list (wderiv-e1 pass2)) 'block->letrec]
|
||||||
|
[#:pattern (?expr)]
|
||||||
|
[Expr ?expr pass2])
|
||||||
([#:rename ?block (wlderiv-es1 pass2)]
|
([#:rename ?block (wlderiv-es1 pass2)]
|
||||||
[#:set-syntax (wlderiv-es1 pass2)])]
|
[#:set-syntax (wlderiv-es1 pass2)]
|
||||||
[List ?block pass2])]
|
[List ?block pass2])])]
|
||||||
[#f
|
[#f
|
||||||
(R)]))
|
(R)]))
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user