diff options
author | Ludovic Courtes | 2006-09-03 11:43:55 +0000 |
---|---|---|
committer | Ludovic Courtes | 2006-09-03 11:43:55 +0000 |
commit | 8008a4d20f277910d5524e7704db32068010a0a5 (patch) | |
tree | da43ca1820ca9d83845112963af054da748e96d0 /src/guile/skribilo/utils | |
parent | 242821c06c44429369cbf1f542bf07be5d51e955 (diff) | |
download | skribilo-8008a4d20f277910d5524e7704db32068010a0a5.tar.gz skribilo-8008a4d20f277910d5524e7704db32068010a0a5.tar.lz skribilo-8008a4d20f277910d5524e7704db32068010a0a5.zip |
Implemented per-document node identifiers.
* src/guile/skribilo/ast.scm: Autoload `srfi-1' on `fold'.
(*node-table*): Removed.
(bind-markup!): Removed.
(initialize<markup>): Removed.
(find-markups): Removed.
(write<markup>): Commented out debugging `format'.
(<document>)[node-table]: New slot.
[nodes-bound?]: New slot.
(document-lookup-node): New.
(document-bind-node!): New.
(document-bind-nodes!): New.
(ast-fold): New.
(find-markup-ident): Removed.
* src/guile/skribilo/output.scm (*document-being-output*): New.
(out<document>): New.
* src/guile/skribilo/resolve.scm (*document-being-resolved*): New.
(resolve!): Invoke `document-bind-nodes!' before resolving the
document.
(do-resolve!<document>): Parameterize `*document-being-resolved*'.
(resolve-ident): Use `document-lookup-node' instead of `find-markups'.
* src/guile/skribilo/utils/compat.scm (bind-markup!): New.
(find-markups): New.
(find-markup-ident): New.
git-archimport-id: lcourtes@laas.fr--2005-libre/skribilo--devo--1.2--patch-57
Diffstat (limited to 'src/guile/skribilo/utils')
-rw-r--r-- | src/guile/skribilo/utils/compat.scm | 39 |
1 files changed, 35 insertions, 4 deletions
diff --git a/src/guile/skribilo/utils/compat.scm b/src/guile/skribilo/utils/compat.scm index c8c3bd0..118f294 100644 --- a/src/guile/skribilo/utils/compat.scm +++ b/src/guile/skribilo/utils/compat.scm @@ -25,15 +25,18 @@ :use-module (skribilo parameters) :use-module (skribilo evaluator) :use-module (srfi srfi-1) - :autoload (srfi srfi-13) (string-rindex) + :autoload (srfi srfi-13) (string-rindex) :use-module (srfi srfi-34) :use-module (srfi srfi-35) :use-module (ice-9 optargs) - :autoload (skribilo ast) (ast?) + :autoload (skribilo ast) (ast? document? document-lookup-node) :autoload (skribilo condition) (file-search-error? &file-search-error) - :autoload (skribilo reader) (make-reader) - :autoload (skribilo lib) (type-name) + :autoload (skribilo reader) (make-reader) + :autoload (skribilo lib) (type-name) + :autoload (skribilo resolve) (*document-being-resolved*) + :autoload (skribilo output) (*document-being-output*) :use-module (skribilo debug) + :re-export (file-size) ;; re-exported from `(skribilo utils files)' :replace (gensym)) @@ -178,6 +181,34 @@ ;;; +;;; Node lookup (formerly provided by `ast.scm'). +;;; + +(define-public (bind-markup! node) + (let ((doc (or (*document-being-resolved*) + (*document-being-output*)))) + (if (document? doc) + (document-bind-node! doc node) + (error "Sorry, unable to achieve `bind-markup!'. Use `document-bind-node!' instead." + node)))) + +(define-public (find-markups ident) + (let ((doc (or (*document-being-resolved*) + (*document-being-output*)))) + (if (document? doc) + (let ((result (document-lookup-node doc ident))) + (if result + (list result) + #f)) + (error "Sorry, unable to achieve `find-markups'. Use `document-lookup-node' instead." + ident)))) + +(define-public (find-markup-ident ident) + (or (find-markups ident) '())) + + + +;;; ;;; Debugging facilities. ;;; |