exported pretty-format, a parameter maker for setting the pretty
format for various forms. The pretty format structure is not documented yet and there is no error-checking mechanism for verifying proper input.
This commit is contained in:
parent
f8b0e949d9
commit
f05f171f28
Binary file not shown.
|
@ -15,10 +15,10 @@
|
|||
|
||||
|
||||
(library (ikarus pretty-print)
|
||||
(export pretty-print pretty-width)
|
||||
(export pretty-print pretty-width pretty-format)
|
||||
(import
|
||||
(rnrs hashtables)
|
||||
(except (ikarus) pretty-print pretty-width))
|
||||
(except (ikarus) pretty-print pretty-width pretty-format))
|
||||
(define (map1ltr f ls)
|
||||
;;; ltr so that gensym counts get assigned properly
|
||||
(cond
|
||||
|
@ -609,6 +609,15 @@
|
|||
(if (output-port? p)
|
||||
(pretty x p)
|
||||
(die 'pretty-print "not an output port" p))]))
|
||||
|
||||
(define pretty-format
|
||||
(lambda (x)
|
||||
(unless (symbol? x)
|
||||
(die 'pretty-format "not a symbol" x))
|
||||
(case-lambda
|
||||
[() (getprop x '*pretty-format*)]
|
||||
[(v) (putprop x '*pretty-format* v)])))
|
||||
|
||||
;;; standard formats
|
||||
(set-fmt! 'quote '(read-macro . "'"))
|
||||
(set-fmt! 'unquote '(read-macro . ","))
|
||||
|
|
|
@ -449,22 +449,20 @@
|
|||
|
||||
(define macro
|
||||
(lambda (x h)
|
||||
(define macro-forms
|
||||
'([quote . "'"]
|
||||
[quasiquote . "`"]
|
||||
[unquote . ","]
|
||||
[unquote-splicing . ",@"]
|
||||
[syntax . "#'"]
|
||||
[quasisyntax . "#`"]
|
||||
[unsyntax . "#,"]
|
||||
[unsyntax-splicing . "#,@"]
|
||||
[|#primitive| . "#%"]))
|
||||
(and (pair? x)
|
||||
(and
|
||||
(pair? x)
|
||||
(let ([a ($car x)])
|
||||
(and
|
||||
(symbol? a)
|
||||
(let ([d ($cdr x)])
|
||||
(and (pair? d)
|
||||
(null? ($cdr d))
|
||||
(not (hashtable-ref h x #f))))
|
||||
(assq ($car x) macro-forms))))
|
||||
(let ([p ((pretty-format a))])
|
||||
(and (pair? p)
|
||||
(eq? (car p) 'read-macro)
|
||||
(string? (cdr p)))
|
||||
p))))))
|
||||
|
||||
(define write-pair
|
||||
(lambda (x p m h i)
|
||||
|
|
|
@ -1 +1 @@
|
|||
1471
|
||||
1472
|
||||
|
|
|
@ -1285,6 +1285,7 @@
|
|||
[set-symbol-value! i symbols $boot]
|
||||
[eval-core $boot]
|
||||
[pretty-print i $boot]
|
||||
[pretty-format i]
|
||||
[pretty-width i]
|
||||
[module i cm]
|
||||
[library i]
|
||||
|
|
Loading…
Reference in New Issue