diff options
author | michele.simionato <devnull@localhost> | 2009-03-03 05:17:29 +0000 |
---|---|---|
committer | michele.simionato <devnull@localhost> | 2009-03-03 05:17:29 +0000 |
commit | 1847eff0d31d5ac020581022b64cb8eb3159d9b3 (patch) | |
tree | 2d9891d87b7c2f279cd2f14b38f4505d35e5a723 /scheme | |
parent | de5623df700f7205505e05a7214fb0a0871790e3 (diff) | |
download | micheles-1847eff0d31d5ac020581022b64cb8eb3159d9b3.tar.gz |
Forgot a module
Diffstat (limited to 'scheme')
-rw-r--r-- | scheme/sweet-macros/helper3.mzscheme.sls | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/scheme/sweet-macros/helper3.mzscheme.sls b/scheme/sweet-macros/helper3.mzscheme.sls new file mode 100644 index 0000000..79e6984 --- /dev/null +++ b/scheme/sweet-macros/helper3.mzscheme.sls @@ -0,0 +1,20 @@ +#!r6rs +(library (sweet-macros) +(export local syntax-match def-syntax) +(import (rnrs) (for (sweet-macros helper2) run expand)) + +(define-syntax def-syntax + (syntax-match (extends local) + (sub (def-syntax name (extends parent) + (local loc ...) (literal ...) + clause ...) + #'(define-syntax name + (syntax-match (local loc ...) (literal ...) + clause ... + (sub x ((parent <transformer>) #'x))))) + (sub (def-syntax (name . args) skel . rest) + #'(define-syntax name (syntax-match () (sub (name . args) skel . rest)))) + (sub (def-syntax name transformer) + #'(define-syntax name transformer)) + )) +) |