1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-11 22:31:12 +02:00

Add printers for <intmap> and <transient-intmap>

* module/language/cps/intmap.scm (intmap->alist, print-intmap)
  (print-transient-intmap): New functions.
  Install the new functions as printers for <intmap> and <transient-intmap>.
This commit is contained in:
Andy Wingo 2015-05-08 11:13:39 +02:00
parent eb9d442840
commit 6ffb6e69ed

View file

@ -32,6 +32,7 @@
(define-module (language cps intmap)
#:use-module (srfi srfi-9)
#:use-module (srfi srfi-9 gnu)
#:use-module (srfi srfi-18)
#:use-module (ice-9 match)
#:export (empty-intmap
@ -590,3 +591,14 @@
((eq? root a-root) a)
((eq? root b-root) b)
(else (make-intmap/prune a-min a-shift root)))))))))
(define (intmap->alist intmap)
(reverse (intmap-fold acons intmap '())))
(define (print-intmap intmap port)
(format port "#<intmap ~a>" (intmap->alist intmap)))
(define (print-transient-intmap intmap port)
(format port "#<transient-intmap ~a>" (intmap->alist intmap)))
(set-record-type-printer! <intmap> print-intmap)
(set-record-type-printer! <transient-intmap> print-transient-intmap)