Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(584)

Unified Diff: scm/graphviz.scm

Issue 567140045: Move Guile-style modules from scm to scm-modules
Patch Set: Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Please Sign in to add in-line comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « scm/framework-svg.scm ('k') | scm/guile-debugger.scm » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: scm/graphviz.scm
diff --git a/scm/graphviz.scm b/scm/graphviz.scm
deleted file mode 100644
index a2b612211fd683e9088738beced4f1bba70bc80d..0000000000000000000000000000000000000000
--- a/scm/graphviz.scm
+++ /dev/null
@@ -1,79 +0,0 @@
-;;;; This file is part of LilyPond, the GNU music typesetter.
-;;;;
-;;;; Copyright (C) 2007--2019 Joe Neeman <joeneeman@gmail.com>
-;;;;
-;;;; LilyPond is free software: you can redistribute it and/or modify
-;;;; it under the terms of the GNU General Public License as published by
-;;;; the Free Software Foundation, either version 3 of the License, or
-;;;; (at your option) any later version.
-;;;;
-;;;; LilyPond is distributed in the hope that it will be useful,
-;;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;;;; GNU General Public License for more details.
-;;;;
-;;;; You should have received a copy of the GNU General Public License
-;;;; along with LilyPond. If not, see <http://www.gnu.org/licenses/>.
-
-
-(define-module (scm graphviz)
- #:use-module (lily)
- #:export
- (make-empty-graph add-node add-edge add-cluster
- graph-write
- ))
-
-(define graph-type (make-record-type "graph" '(nodes edges clusters name)))
-
-(define make-graph (record-constructor graph-type))
-(define (make-empty-graph name) (make-graph '() '() '() name))
-
-(define nodes (record-accessor graph-type 'nodes))
-(define edges (record-accessor graph-type 'edges))
-(define clusters (record-accessor graph-type 'clusters))
-(define set-nodes! (record-modifier graph-type 'nodes))
-(define set-edges! (record-modifier graph-type 'edges))
-(define set-clusters! (record-modifier graph-type 'clusters))
-
-(define (add-cluster graph node-id cluster-name)
- (let* ((cs (clusters graph))
- (cluster (assoc cluster-name cs))
- (already-in-cluster (if cluster
- (cdr cluster)
- '())))
- (set-clusters! graph (assoc-set! cs
- cluster-name
- (cons node-id already-in-cluster)))))
-
-(define (add-node graph label . cluster-name)
- (let* ((ns (nodes graph))
- (id (length ns)))
- (set-nodes! graph (assv-set! ns id label))
- (if (and (not (null? cluster-name))
- (string? (car cluster-name)))
- (add-cluster graph id (car cluster-name)))
- id))
-
-(define (add-edge graph node1 node2)
- (set-edges! graph (cons `(,node1 . ,node2) (edges graph))))
-
-(define (graph-write graph out)
- (let ((ns (nodes graph))
- (es (edges graph))
- (cs (clusters graph)))
- (ly:message (format #f (_ "Writing graph `~a'...") (port-filename out)))
- (display "digraph G {\nrankdir=\"LR\"\nnode [shape=rectangle]\n" out)
- (for-each (lambda (n) (format out "~a [label=\"~a\"]\n" (car n) (cdr n)))
- ns)
- (for-each (lambda (e) (format out "~a -> ~a\n" (car e) (cdr e)))
- es)
- (for-each (lambda (c)
- (format out "subgraph cluster_~a {\nlabel= \"~a\"\ncolor=blue\n"
- (if (guile-v2)
- (string-filter char-alphabetic? (car c))
- (string-filter (car c) char-alphabetic?))
- (car c))
- (for-each (lambda (n) (format out "~a\n" n)) (cdr c))
- (display "}\n" out))
- cs)
- (display "}" out)))
« no previous file with comments | « scm/framework-svg.scm ('k') | scm/guile-debugger.scm » ('j') | no next file with comments »

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b