aboutsummaryrefslogtreecommitdiffstats
path: root/lib/rewriters.r7rs.scm
diff options
context:
space:
mode:
authorGravatar Peter McGoron 2025-08-05 18:20:28 -0400
committerGravatar Peter McGoron 2025-08-05 18:20:28 -0400
commitf36f61cb4ab68285b2ba4a230f312843e4faf885 (patch)
tree32fd2958c18c54c875171bf177217b2d44dd06cf /lib/rewriters.r7rs.scm
parentadd adjustable value rewriter (diff)
Support Foment
Foment had some peculiarities: 1. Parameterize objects are initialized with the objects themselves at some point, which broke the previous code. 2. Foment cannot discard multiple value returns in some scenarios.
Diffstat (limited to '')
-rw-r--r--lib/rewriters.r7rs.scm19
1 files changed, 15 insertions, 4 deletions
diff --git a/lib/rewriters.r7rs.scm b/lib/rewriters.r7rs.scm
index 8c3db78..3b6ba96 100644
--- a/lib/rewriters.r7rs.scm
+++ b/lib/rewriters.r7rs.scm
@@ -20,7 +20,18 @@
| THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|#
-(begin (define default-rewriters
- `((,pair? . ,default-on-pair)
- (,vector? . ,default-on-vector)
- (,error-object? ,default-on-error)))) \ No newline at end of file
+(begin
+ (define (default-on-pair pair)
+ (cons (test-rewrite (car pair))
+ (test-rewrite (cdr pair))))
+ (define (default-on-vector vec)
+ (vector-map test-rewrite vec))
+ (define (default-on-error error)
+ (let ((msg (error-object-message error))
+ (irritants (error-object-irritants error)))
+ (display (list msg irritants)) (newline)
+ (cons 'error (cons msg irritants))))
+ (define default-rewriters
+ `((,pair? . ,default-on-pair)
+ (,vector? . ,default-on-vector)
+ (,error-object? . ,default-on-error)))) \ No newline at end of file