Changeset 12070 in project
- Timestamp:
- 10/01/08 06:17:43 (12 years ago)
- Location:
- release/3/digraph/trunk
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
release/3/digraph/trunk/digraph-eggdoc.scm
r11122 r12070 9 9 10 10 (history 11 (version "1.10" "Now using matchable extension") 11 12 (version "1.9" "Added procedures pred-list and succ-list") 12 13 (version "1.8" "Added procedure node-info-set!") … … 20 21 (version "1.0" "Initial release")) 21 22 22 (requires (url "dyn-vector.html" "dyn-vector")) 23 (requires (url "dyn-vector.html" "dyn-vector") 24 (url "syntax-case.html" "syntax-case") 25 (url "matchable.html" "matchable")) 23 26 24 27 (usage "(require-extension digraph)") -
release/3/digraph/trunk/digraph.meta
r9198 r12070 16 16 ; A list of eggs digraph depends on. 17 17 18 (needs testbase eggdoc dyn-vector )18 (needs testbase eggdoc dyn-vector syntax-case matchable) 19 19 20 20 (eggdoc "digraph-eggdoc.scm") -
release/3/digraph/trunk/digraph.scm
r11122 r12070 25 25 (require-extension srfi-1) 26 26 (require-extension dyn-vector) 27 (require-extension syntax-case) 28 (require-extension matchable) 27 29 28 30 (define-extension digraph) … … 67 69 68 70 (define (get-nodes) 69 (dynvector-fold 70 (lambda (i st v) (case v ((none) st) (else (cons (list i v) st)))) 71 (dynvector-fold (lambda (i st v) (if (eq? 'none v) st (cons (list i v) st))) 71 72 (list) nodes)) 72 73 … … 84 85 85 86 (define (add-node! i info) 86 ( case (dynvector-ref nodes i)87 ((none) (set! node-count (fx+ 1 node-count))))87 (if (eq? 'none (dynvector-ref nodes i)) 88 (set! node-count (fx+ 1 node-count))) 88 89 (dynvector-set! nodes i info)) 89 90 … … 152 153 153 154 (define (remove-node! i) 154 (case (dynvector-ref nodes i) 155 ((none)) 156 (else (begin 157 (set-out-edges! i (list)) 158 (set-in-edges! i (list)) 159 (dynvector-set! nodes i 'none) 160 (set! node-count (fx- node-count 1)) 161 (set! garbage-nodes (cons i garbage-nodes)) 162 (void))))) 155 (if (not (eq? 'none (dynvector-ref nodes i))) 156 (begin 157 (set-out-edges! i (list)) 158 (set-in-edges! i (list)) 159 (dynvector-set! nodes i 'none) 160 (set! node-count (fx- node-count 1)) 161 (set! garbage-nodes (cons i garbage-nodes)) 162 (void)))) 163 163 164 164 (define (remove-nodes! ns) (for-each remove-node! ns)) … … 178 178 (dynvector-ref succ i))) 179 179 180 (define (has-node n) (case (dynvector-ref nodes n) 181 ((none) #f) 182 (else #t))) 180 (define (has-node n) (not (eq? 'none (dynvector-ref nodes n)))) 183 181 184 182 (define (node-info n) (let ((info (dynvector-ref nodes n))) 185 (case info 186 ((none) #f) 187 (else info)))) 183 (and (not (eq? 'none info)) info))) 188 184 189 185 (define (node-info-set! n v) (dynvector-set! nodes n v)) 190 186 191 187 192 (define (foreach-node f) (dynvector-for-each (lambda (i x) (case x ((none)) (else (f i x)))) nodes)) 188 (define (foreach-node f) (dynvector-for-each (lambda (i x) (if (not (eq? 'none x)) (f i x))) 189 nodes)) 190 193 191 (define (foreach-edge f) (dynvector-for-each f succ)) 194 192 -
release/3/digraph/trunk/digraph.setup
r11122 r12070 21 21 22 22 ; Assoc list with properties for your extension: 23 `((version 1. 9)23 `((version 1.10) 24 24 (documentation "digraph.html") 25 25 ,@(if has-exports? `((exports "digraph.exports")) (list)) ))
Note: See TracChangeset
for help on using the changeset viewer.