changelog shortlog graph tags branches changeset files file revisions raw help

Mercurial > org / annotate notes/20231124.org

changeset 15: 27795b18326b
author: ellis <ellis@rwest.io>
date: Fri, 24 Nov 2023 22:39:07 -0500
permissions: -rw-r--r--
description: blog update
15
27795b18326b blog update
ellis <ellis@rwest.io>
parents:
diff changeset
1
 * cl-dot examples
27795b18326b blog update
ellis <ellis@rwest.io>
parents:
diff changeset
2
 #+begin_src lisp
27795b18326b blog update
ellis <ellis@rwest.io>
parents:
diff changeset
3
 (defmethod cl-dot:graph-object-node ((graph (eql 'example)) (object cons))
27795b18326b blog update
ellis <ellis@rwest.io>
parents:
diff changeset
4
   (make-instance 'cl-dot:node
27795b18326b blog update
ellis <ellis@rwest.io>
parents:
diff changeset
5
                  :attributes '(:label "cell \\N"
27795b18326b blog update
ellis <ellis@rwest.io>
parents:
diff changeset
6
                                :shape :box)))
27795b18326b blog update
ellis <ellis@rwest.io>
parents:
diff changeset
7
 (defmethod cl-dot:graph-object-points-to ((graph (eql 'example)) (object cons))
27795b18326b blog update
ellis <ellis@rwest.io>
parents:
diff changeset
8
   (list (car object)
27795b18326b blog update
ellis <ellis@rwest.io>
parents:
diff changeset
9
         (make-instance 'cl-dot:attributed
27795b18326b blog update
ellis <ellis@rwest.io>
parents:
diff changeset
10
                        :object (cdr object)
27795b18326b blog update
ellis <ellis@rwest.io>
parents:
diff changeset
11
                        :attributes '(:weight 3))))
27795b18326b blog update
ellis <ellis@rwest.io>
parents:
diff changeset
12
 ;; Symbols
27795b18326b blog update
ellis <ellis@rwest.io>
parents:
diff changeset
13
 (defmethod cl-dot:graph-object-node ((graph (eql 'example)) (object symbol))
27795b18326b blog update
ellis <ellis@rwest.io>
parents:
diff changeset
14
   (make-instance 'cl-dot:node
27795b18326b blog update
ellis <ellis@rwest.io>
parents:
diff changeset
15
                  :attributes `(:label ,object
27795b18326b blog update
ellis <ellis@rwest.io>
parents:
diff changeset
16
                                :shape :hexagon
27795b18326b blog update
ellis <ellis@rwest.io>
parents:
diff changeset
17
                                :style :filled
27795b18326b blog update
ellis <ellis@rwest.io>
parents:
diff changeset
18
                                :color :black
27795b18326b blog update
ellis <ellis@rwest.io>
parents:
diff changeset
19
                                :fillcolor "#ccccff")))
27795b18326b blog update
ellis <ellis@rwest.io>
parents:
diff changeset
20
 (let* ((data '(a b c #1=(b z) c d #1#))
27795b18326b blog update
ellis <ellis@rwest.io>
parents:
diff changeset
21
        (dgraph (cl-dot:generate-graph-from-roots 'example (list data)
27795b18326b blog update
ellis <ellis@rwest.io>
parents:
diff changeset
22
                                                  '(:rankdir "LR" :layout "twopi" :labelloc "t"))))
27795b18326b blog update
ellis <ellis@rwest.io>
parents:
diff changeset
23
   (cl-dot:dot-graph dgraph "test-lr.svg" :format #+nil :x11 :svg))
27795b18326b blog update
ellis <ellis@rwest.io>
parents:
diff changeset
24
 #+end_src
27795b18326b blog update
ellis <ellis@rwest.io>
parents:
diff changeset
25
 
27795b18326b blog update
ellis <ellis@rwest.io>
parents:
diff changeset
26
 #+RESULTS:
27795b18326b blog update
ellis <ellis@rwest.io>
parents:
diff changeset
27
 
27795b18326b blog update
ellis <ellis@rwest.io>
parents:
diff changeset
28
 #+begin_src lisp
27795b18326b blog update
ellis <ellis@rwest.io>
parents:
diff changeset
29
 (let* ((data '(a b))
27795b18326b blog update
ellis <ellis@rwest.io>
parents:
diff changeset
30
        (dgraph (cl-dot:generate-graph-from-roots 'example (list data)
27795b18326b blog update
ellis <ellis@rwest.io>
parents:
diff changeset
31
                                                  '(:rankdir "LR"))))
27795b18326b blog update
ellis <ellis@rwest.io>
parents:
diff changeset
32
           (cl-dot:print-graph dgraph))
27795b18326b blog update
ellis <ellis@rwest.io>
parents:
diff changeset
33
 #+end_src