aboutsummaryrefslogtreecommitdiffstats
path: root/lib/cuprate/rewriters
diff options
context:
space:
mode:
authorGravatar Peter McGoron 2025-11-04 08:24:27 -0500
committerGravatar Peter McGoron 2025-11-04 08:24:27 -0500
commitf1c3054215f58b4a4cca3a7716993c273c87ca74 (patch)
tree1ee2cad102f87ff65f5ef12eda019c79110792a0 /lib/cuprate/rewriters
parentstart moving implementation-dependent code into separate libraries (diff)
move rewriters to implementation file, make rewriter cycle-detecting
Diffstat (limited to '')
-rw-r--r--lib/cuprate/rewriters.sld7
-rw-r--r--lib/cuprate/rewriters/chicken.sld35
-rw-r--r--lib/cuprate/rewriters/foment.sld32
-rw-r--r--lib/cuprate/rewriters/r7rs.sld24
4 files changed, 0 insertions, 98 deletions
diff --git a/lib/cuprate/rewriters.sld b/lib/cuprate/rewriters.sld
deleted file mode 100644
index a375cc8..0000000
--- a/lib/cuprate/rewriters.sld
+++ /dev/null
@@ -1,7 +0,0 @@
-(define-library (cuprate rewriters)
- (import (scheme base))
- (export rewriters rewrite)
- (cond-expand
- (chicken-5 (import (cuprate rewriters chicken)))
- (foment (import (cuprate rewriters foment)))
- (else (import (cuprate rewriters r7rs))))) \ No newline at end of file
diff --git a/lib/cuprate/rewriters/chicken.sld b/lib/cuprate/rewriters/chicken.sld
deleted file mode 100644
index f92f998..0000000
--- a/lib/cuprate/rewriters/chicken.sld
+++ /dev/null
@@ -1,35 +0,0 @@
-(define-library (cuprate rewriters chicken)
- (import (scheme base) (scheme write)
- (chicken memory representation)
- (chicken condition))
- (export rewriters rewrite)
- (begin
- (define (default-on-pair pair)
- (cons (rewrite (car pair))
- (rewrite (cdr pair))))
- (define (default-on-vector vec)
- (vector-map rewrite vec))
- (define (default-on-error error)
- (cons 'error
- (cons (error-object-message error)
- (error-object-irritants error))))
- (define (default-on-condition cond)
- (map rewrite (condition->list cond)))
- (define (default-on-record rec)
- `(record (name ,(rewrite (record-instance-type rec)))
- (elements
- ,(vector-map rewrite (record->vector rec)))))
- (define rewriters
- (make-parameter
- `((,pair? . ,default-on-pair)
- (,vector? . ,default-on-vector)
- (,error-object? . ,default-on-error)
- (,condition? . ,default-on-condition)
- (,record-instance? . ,default-on-record))))
- (define (rewrite obj)
- (let loop ((rewriters (rewriters)))
- (cond
- ((null? rewriters) obj)
- (((caar rewriters) obj) ((cdar rewriters) obj))
- (else (loop (cdr rewriters))))))))
-
diff --git a/lib/cuprate/rewriters/foment.sld b/lib/cuprate/rewriters/foment.sld
deleted file mode 100644
index 248e2ef..0000000
--- a/lib/cuprate/rewriters/foment.sld
+++ /dev/null
@@ -1,32 +0,0 @@
-(define-library (cuprate rewriters foment)
- (import (scheme base)
- (only (foment base)
- error-object-type
- error-object-who
- error-object-kind))
- (export rewriters rewrite)
- (begin
- (define (default-on-pair pair)
- (cons (rewrite (car pair))
- (rewrite (cdr pair))))
- (define (default-on-vector vec)
- (vector-map rewrite vec))
- (define (default-on-error error)
- (let ((msg (error-object-message error))
- (irritants (error-object-irritants error)))
- `(error (type ,(rewrite (error-object-type error)))
- (who ,(rewrite (error-object-who error)))
- (kind ,(rewrite (error-object-kind error)))
- (msg ,(rewrite (error-object-message error)))
- (irritants ,@(map rewrite (error-object-irritants error))))))
- (define rewriters
- (make-parameter `((,pair? . ,default-on-pair)
- (,vector? . ,default-on-vector)
- (,error-object? . ,default-on-error))))
- (define (rewrite obj)
- (let loop ((rewriters (rewriters)))
- (cond
- ((null? rewriters) obj)
- (((caar rewriters) obj) ((cdar rewriters) obj))
- (else (loop (cdr rewriters))))))))
-
diff --git a/lib/cuprate/rewriters/r7rs.sld b/lib/cuprate/rewriters/r7rs.sld
deleted file mode 100644
index b231f81..0000000
--- a/lib/cuprate/rewriters/r7rs.sld
+++ /dev/null
@@ -1,24 +0,0 @@
-(define-library (cuprate rewriters r7rs)
- (import (scheme base))
- (export rewriters rewrite)
- (begin
- (define (default-on-pair pair)
- (cons (rewrite (car pair))
- (rewrite (cdr pair))))
- (define (default-on-vector vec)
- (vector-map rewrite vec))
- (define (default-on-error error)
- (let ((msg (error-object-message error))
- (irritants (error-object-irritants error)))
- (cons 'error (cons msg irritants))))
- (define rewriters
- (make-parameter `((,pair? . ,default-on-pair)
- (,vector? . ,default-on-vector)
- (,error-object? . ,default-on-error))))
- (define (rewrite obj)
- (let loop ((rewriters (rewriters)))
- (cond
- ((null? rewriters) obj)
- (((caar rewriters) obj) ((cdar rewriters) obj))
- (else (loop (cdr rewriters))))))))
-