aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakob L. Kreuze2023-05-03 10:50:04 -0400
committerJakob L. Kreuze2023-05-03 10:50:04 -0400
commitdf39a265c2e3f98f49c50aeb6ec20c11a40a9186 (patch)
treeb0cffb14c26bea3c7dbb0dfc58b522d96563d896
parent62440c0d5b99ee925045158d22a69f51607ab601 (diff)
Support compilation of set literals
-rw-r--r--compiler/lean.scm7
1 files changed, 7 insertions, 0 deletions
diff --git a/compiler/lean.scm b/compiler/lean.scm
index 6cd52b7..064683b 100644
--- a/compiler/lean.scm
+++ b/compiler/lean.scm
@@ -15,6 +15,7 @@
;;; <http://www.gnu.org/licenses/>.
(define-module (compiler lean)
+ #:use-module ((rnrs base) #:select (assert))
#:use-module (compiler types)
#:use-module (compiler utilities) ; for subscript-digits
#:use-module (ice-9 match)
@@ -254,6 +255,12 @@
(match x
(($ <constant> value) (compile value))))
+(define-method (compile (x <set-literal>))
+ (match x
+ (($ <set-literal> elems)
+ (assert (equal? elems (delete-duplicates! elems)))
+ (format #f "(Rego.Any.set [~a])" (string-join (map compile elems) ", ")))))
+
;; TODO: Remove me.
(define-method (compile (x <reference>))
(define recur

© 2015 - 2026 Jakob L. Kreuze