diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/guile/skribilo/lib.scm | 17 | ||||
-rw-r--r-- | src/guile/skribilo/utils/compat.scm | 12 |
2 files changed, 18 insertions, 11 deletions
diff --git a/src/guile/skribilo/lib.scm b/src/guile/skribilo/lib.scm index d538253..21b2a4d 100644 --- a/src/guile/skribilo/lib.scm +++ b/src/guile/skribilo/lib.scm @@ -27,7 +27,7 @@ skribe-warning skribe-warning/ast skribe-message - %procedure-arity) + type-name %procedure-arity) :export-syntax (new define-markup define-simple-markup define-simple-container define-processor-markup) @@ -146,6 +146,21 @@ (options (the-options opts))))) + +;;; +;;; TYPE-NAME +;;; +(define (type-name obj) + (cond ((string? obj) "string") + ((ast? obj) "ast") + ((list? obj) "list") + ((pair? obj) "pair") + ((number? obj) "number") + ((char? obj) "character") + ((keyword? obj) "keyword") + (else (with-output-to-string + (lambda () (write obj)))))) + ;;; ;;; SKRIBE-EVAL-LOCATION ... ;;; diff --git a/src/guile/skribilo/utils/compat.scm b/src/guile/skribilo/utils/compat.scm index 9032bcf..c8c3bd0 100644 --- a/src/guile/skribilo/utils/compat.scm +++ b/src/guile/skribilo/utils/compat.scm @@ -32,6 +32,7 @@ :autoload (skribilo ast) (ast?) :autoload (skribilo condition) (file-search-error? &file-search-error) :autoload (skribilo reader) (make-reader) + :autoload (skribilo lib) (type-name) :use-module (skribilo debug) :re-export (file-size) ;; re-exported from `(skribilo utils files)' :replace (gensym)) @@ -252,16 +253,7 @@ (hash-map->list (lambda (key val) val) h)) (define-public (find-runtime-type obj) - (cond ((string? obj) "string") - ((ast? obj) "ast") - ((list? obj) "list") - ((pair? obj) "pair") - ((number? obj) "number") - ((char? obj) "character") - ((keyword? obj) "keyword") - (else (with-output-to-string - (lambda () (write obj)))))) - + (type-name obj)) ;;; |