summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/guile/skribilo/writer.scm60
1 files changed, 37 insertions, 23 deletions
diff --git a/src/guile/skribilo/writer.scm b/src/guile/skribilo/writer.scm
index 90b8ff3..b339284 100644
--- a/src/guile/skribilo/writer.scm
+++ b/src/guile/skribilo/writer.scm
@@ -28,16 +28,18 @@
:use-module (skribilo utils syntax)
:autoload (srfi srfi-1) (find filter)
- :autoload (skribilo engine) (engine? engine-ident? default-engine))
+ :autoload (srfi srfi-34) (raise)
+ :autoload (skribilo engine) (engine? engine-ident? default-engine)
+ :use-module (srfi srfi-35)
+ :use-module (skribilo condition)
+ :use-module (skribilo debug)
+ :use-module (skribilo output)
+ :use-module (skribilo ast)
+ :use-module ((skribilo lib) :select (%procedure-arity))
-(use-modules (skribilo debug)
- (skribilo output)
- (skribilo ast)
- (skribilo lib)
-
- (oop goops)
- (ice-9 optargs))
+ :use-module (oop goops)
+ :use-module (ice-9 optargs))
(fluid-set! current-reader %skribilo-module-reader)
@@ -95,14 +97,11 @@
#f)))
(if predicate
(cond
- ((not (procedure? predicate))
- (skribe-error 'markup-writer
- "Illegal predicate (procedure expected)"
- predicate))
- ((not (eq? (%procedure-arity predicate) 2))
- (skribe-error 'markup-writer
- "Illegal predicate arity (2 arguments expected)"
- predicate))
+ ((or (not (procedure? predicate))
+ (not (eq? (%procedure-arity predicate) 2)))
+ (raise (condition (&invalid-argument-error
+ (proc-name make-writer-predicate)
+ (argument predicate)))))
(else
(if (procedure? t2)
(lambda (n e)
@@ -135,16 +134,23 @@
(cond
((and (not (symbol? markup)) (not (eq? markup #t)))
- (skribe-error 'markup-writer "illegal markup" markup))
+ (raise (condition (&invalid-argument-error
+ (proc-name 'markup-writer)
+ (argument markup)))))
((not (engine? e))
- (skribe-error 'markup-writer "illegal engine" e))
+ (raise (condition (&invalid-argument-error
+ (proc-name 'markup-writer)
+ (argument e)))))
((and (not predicate)
(not class)
(null? options)
(not before)
(eq? action 'unspecified)
(not after))
- (skribe-error 'markup-writer "illegal writer" markup))
+ (raise (condition (&invalid-argument-error
+ (proc-name 'markup-writer)
+ (argument (list predicate class options
+ before action after))))))
(else
(let ((m (make-writer-predicate markup predicate class))
(ac (if (eq? action 'unspecified)
@@ -196,9 +202,13 @@
(let ((e (or engine (default-engine))))
(cond
((not (symbol? markup))
- (skribe-error 'markup-writer-get "illegal symbol" markup))
+ (raise (condition (&invalid-argument-error
+ (proc-name 'markup-writer-get)
+ (argument markup)))))
((not (engine? e))
- (skribe-error 'markup-writer-get "illegal engine" e))
+ (raise (condition (&invalid-argument-error
+ (proc-name 'markup-writer-get)
+ (argument e)))))
(else
(let* ((writers (slot-ref e 'writers))
(markup-writers (hashq-ref writers markup '()))
@@ -223,9 +233,13 @@
(let ((e (or engine (default-engine))))
(cond
((not (symbol? markup))
- (skribe-error 'markup-writer "illegal symbol" markup))
+ (raise (condition (&invalid-argument-error
+ (proc-name 'markup-writer-get*)
+ (argument markup)))))
((not (engine? e))
- (skribe-error 'markup-writer "illegal engine" e))
+ (raise (condition (&invalid-argument-error
+ (proc-name 'markup-writer-get*)
+ (argument e)))))
(else
(let* ((writers (slot-ref e 'writers))
(delegate (slot-ref e 'delegate)))