guard if in accumulators is now :if.

All auxiliary syntax is now prefixed by :.
This commit is contained in:
Linus 2021-09-27 21:36:02 +02:00
parent 88f138849e
commit 2775e70fd0
4 changed files with 33 additions and 33 deletions

View file

@ -373,12 +373,12 @@
(define-syntax accumulating
(syntax-rules (:initial if :acc)
(syntax-rules (:initial :if :acc)
((accumulating :acc (kons final init) ((var) . x) next . rest)
(accumulating :acc (kons final init) ((var cursor) . x) next . rest))
((accumulating :acc (kons final init) ((var cursor) ((:initial i) . x)) n . rest)
(accumulating :acc (kons final i) ((var cursor) x) n . rest))
((accumulating :acc (kons final init) ((var cursor) (expr (if check))) n . rest)
((accumulating :acc (kons final init) ((var cursor) (expr (:if check))) n . rest)
(n ((tmp-kons kons))
((cursor init (if check (tmp-kons expr cursor) cursor)))
()
@ -443,18 +443,18 @@
(syntax-rules ()
((_ name default-make setter)
(define-syntax name
(syntax-rules (:acc if :initial)
(syntax-rules (:acc :if :initial)
((_ :acc ((var) (key value)) n . rest)
(name :acc ((var) (key value (if #t) (:initial default-make))) n . rest))
(name :acc ((var) (key value (:if #t) (:initial default-make))) n . rest))
;; either init or if
((_ :acc ((var) (key value (if guard))) n . rest)
(name :acc ((var) (key value (if guard) (:initial default-make))) n . rest))
((_ :acc ((var) (key value (:if guard))) n . rest)
(name :acc ((var) (key value (:if guard) (:initial default-make))) n . rest))
((_ :acc ((var) (key value (initial init))) n . rest)
(name :acc ((var) (key value (if #t) (:initial init))) n . rest))
(name :acc ((var) (key value (:if #t) (:initial init))) n . rest))
;; both init and if
((_ :acc ((var) (key value (:initial init) (if guard))) n . rest)
(name ((var) (key value (if guard) (:initial init))) n . rest))
((_ :acc ((var) (key value (if guard) (:initial init))) n . rest)
((_ :acc ((var) (key value (:initial init) (:if guard))) n . rest)
(name ((var) (key value (:if guard) (:initial init))) n . rest))
((_ :acc ((var) (key value (:if guard) (:initial init))) n . rest)
(n
((var init))
((dummy (if #f #f) (if guard (setter var key value) (if #f #f))))