summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLudovic Courtès2008-02-03 21:18:23 +0100
committerLudovic Courtès2008-02-03 21:18:23 +0100
commit75065b6540212f9989ecc5e535e932938eeb7d68 (patch)
tree413a4a03a675d23270b286a503262bc459b52c48 /src
parent9370de4fcf573790e46e53b2b7aa4834f999ddb0 (diff)
downloadskribilo-75065b6540212f9989ecc5e535e932938eeb7d68.tar.gz
skribilo-75065b6540212f9989ecc5e535e932938eeb7d68.tar.lz
skribilo-75065b6540212f9989ecc5e535e932938eeb7d68.zip
Bind the nodes returned by <unresolved> nodes.
* src/guile/skribilo/resolve.scm (do-resolve!<unresolved>): Use `ast-fold' to bind all nodes in RES and assign them the proper location.
Diffstat (limited to 'src')
-rw-r--r--src/guile/skribilo/resolve.scm12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/guile/skribilo/resolve.scm b/src/guile/skribilo/resolve.scm
index 6405ebd..f902f69 100644
--- a/src/guile/skribilo/resolve.scm
+++ b/src/guile/skribilo/resolve.scm
@@ -202,9 +202,15 @@
(let* ((proc (slot-ref node 'proc))
(res (proc node engine env))
- (loc (ast-loc node)))
- (when (ast? res)
- (ast-loc-set! res loc))
+ (loc (ast-loc node))
+ (doc (ast-document node)))
+ (ast-fold (lambda (node result)
+ (if (markup? node)
+ (document-bind-node! doc node))
+ (if (ast? node)
+ (ast-loc-set! node loc)))
+ #t ;; unused
+ res)
(debug-item "res=" res)
(*unresolved* #t)
res))))