The donuts Reference Manual

Table of Contents

Next: , Previous: , Up: (dir)   [Contents][Index]

The donuts Reference Manual

This is the donuts Reference Manual, version 0.3.1, generated automatically by Declt version 2.4 "Will Decker" on Wed Jun 20 11:42:35 2018 GMT+0.


Next: , Previous: , Up: Top   [Contents][Index]

1 Introduction

Last Updated : 2012/06/29 21:28:17 tkych

Version : 0.3.1 (beta)

Donuts: Graph Drawing DSL (or Graphviz Interface) for CL

Introduction

Donuts converts a graph represented by S-expression to the image. How to use donuts is simple. <> creates a node. -> puts an edge two nodes. && makes a graph by bundling some nodes, edges and graphs. $$ outputs an image of the graph.

For further details, please see index (Under Translation) or index-ja (Japanease) in doc directory.

The Goal of Donuts

Graphviz is a collection of library and utility for drawing a graph. Dot language is description language, used in Graphviz. Graphviz is very useful. However, I (as a lisp programmer) think there are some points to do kaizen.

  1. Since dot language is not Turing-complete, when we draw a graph, we don't take full advantage of the pattern in the graph.

  2. Because dot language is so-called compiled language, development cycle is inconvenient.

  3. Plain Common Lisp does not have ability to draw graph.

The goal of donuts is to draw graph in lispic way of thought (REPL, macro, CLOS, multi-paradigm style, and so on).

Dependencies

Installation & Start

  1. CL-REPL> (ql:quickload :donuts)
  2. CL-REPL> (in-package :donuts)
  3. DONUTS> (dot-output (&& (-> 1 2))) ;output dot code in standard-output
  4. DONUTS> ($$ (&& (-> 1 2))) ;output graph image to viewer

Usage

Examples

  DONUTS> (dot-output
            (& (:label "example")
              (-> (<> "a" :shape :box) "b" :color :red)))

  digraph graph_ID_41 {
    label="example";
    node_ID_39 [label="a",shape=box];
    node_ID_39 -> "b" [color=red];
  }
  NIL

  DONUTS> ;; Example from http://graphviz.org/content/cluster
          ($ (:outfile "cluster.pdf")
             (&& ([&] (:label "process #1" :style :filled :color :lightgrey)
                   (with-node (:style :filled :color :white)
                     (--> "a0" "a1" "a2" "a3")))
                 ([&] (:label "process #2" :color :blue)
                   (with-node (:style :filled)
                     (--> "b0" "b1" "b2" "b3")))
                 (->> (<> "start" :shape :Mdiamond) "a0" "b0")
                 (==> "a3" "b3" (<> "end" :shape :Msquare))
                 (->  "a1" "b3")
                 (->  "a3" "a0")
                 (->  "b2" "a3")))

   ; Create cluster.pdf & Output image to viewer
   NIL

   DONUTS> 
   ;; Example from http://www.linuxjournal.com/article/7275
   ;; num-day: total number of days in month
   ;; starting-day: 0 as Sun, 1 as Mon, ... , 6 as Sat
   (defun generate-monthly-calendar (month year num-days starting-day)
     (let ((month     (generate-month-nodes month year))
           (luminary7 (generate-luminary7-nodes))
           (days      (generate-day-nodes num-days starting-day)))
       (apply #'&& (loop :for week :in (cons luminary7 (group days 7)) 
                         :collect (apply #'--> month week)))))

   (defun generate-month-nodes (month year)
     (<> (format nil "~@(~A~)\\n~D" month year) :shape :Msquare))

   (defun generate-luminary7-nodes ()
     (loop :for day :in '("Sun" "Mon" "Tue" "Wed" "Thu" "Fri" "Sat")
           :collect (<> day :shape :egg :style :filled :color :lightgray)))

   (defun generate-day-nodes (num-days starting-day)
     (loop :for day :in (nconc (loop :repeat starting-day :collect "")
                               (loop :for d :from 1 :to num-days :collect d)
                               (loop :repeat (- (* 7 (if (and (= 28 num-days) (= 0 starting-day))
                                                         4 5)) ;for Feb starting Sun in common year
                                                     starting-day num-days)
                                     :collect ""))
           :collect (<> day :shape :box)))

   ;; from On Lisp, e.g. (group '(1 2 3 4) 2) => ((1 2) (3 4))
   (defun group (lst n)
     (if (zerop n) (error "zero length"))
     (labels ((rec (lst acc)
                (let ((rest (nthcdr n lst)))
                  (if (consp rest)
                      (rec rest (cons (subseq lst 0 n)
                                      acc))
                      (nreverse (cons lst acc))))))
       (if lst (rec lst nil) nil)))

   ($$ (& (:size "8,6":rankdir :LR)
         (generate-monthly-calendar 'may 2012 31 2)))

   ; Output Calendar to Viewer
   NIL

   DONUTS> 
   ;; Example from http://www.graphviz.org/doc/info/html2.gv
   ($$ (& (:rankdir :LR)
     (with-node (:shape :plaintext)
       (let ((a (<> (html (table :border 0 :cellborder 1 :cellspacing 0
                                 (tr (td :rowspan 3 :bgcolor :yellow "class"))
                                 (tr (td :port "here" :bgcolor :lightblue "qualfier"))))))
             (b (<> (html (table :bgcolor :bisque
                                 (tr (td :colspan 3 "elephant")
                                     (td :rowspan 2 :bgcolor :chartreuse
                                         :valign :bottom :align :right "two"))
                                 (tr (td :colspan 2 :rowspan 2
                                         (table :bgcolor :grey
                                                (tr (td "corn"))
                                                (tr (td :bgcolor :yellow "c"))
                                                (tr (td "f"))))
                                     (td :bgcolor :white "penguin"))
                                 (tr (td :colspan 2 :border 4 :align :right :port "there" "4"))))
                     :shape :ellipse :style :filled))
             (c (<> (html "long line 1" (br) "line 2" (br :align :left) "line 3" (br :align :right))))
             (d (<> "d" :shape :triangle)))
         (&&
           (~ b c)
           (-> (@ a :here) (@ b :there) :dir :both :arrowtail :diamond)
           (-> c b)
           (-> d c :label (html (table (tr (td :bgcolor :red :width 10)
                                           (td "Edge labels" (br) "also")
                                           (td :bgcolor :blue :width 10))))))))))

   ; Output example to Viewer
   NIL

Grammar

  <donuts-code> ::= '('<output-op> <graph>')'|<node>|<edge>|<graph>|<html-like-label>|<tag>|<common-lisp-code>
  <output-op> ::= 'dot-output'|'dot-pprint'|'$$'|'$' <attr-list>

  <attr-list> ::= '('{<attr>}')'
  <attr> ::= <attr-keyword> <attr-value>

  <graph> ::= '(&&' <graph-elts>')'|'(&' <attr-list> <graph-elts>')'|<cluster>
  <graph-elts> ::= nil|<pre-node>|<node>|<edge>|<graph>|<cluster>|<rank>|<with>|<graph-elts>{ <graph-elts>}
  <cluster> ::= '([&]' <attr-list> <graph-elts>')'

  <pre-node> ::= <number>|<string>
  <node> ::= <pre-node>|'(<>' (<pre-node>|<html-like-label>){ <attr>}')'|<record>|'(@'<node> <port>[ <port>]')'

  <record> ::= '([] "'<record-label>'"'{ <attr>}')'
  <record-label> ::= <field>{'|'<field>}
  <field> ::= [<filed-port> ]{char}|'{'<record-label>'}'
  <filed-port> ::= <keyword>

  <port> ::= <compass-port>|<filed-port>
  <compass-port> ::= :n|:ne|:e|:se|:s|:sw|:w|:nw|:c|:_

  <edge> ::= '('<edge-cons> <node> <node>{ <attr>}')'|'('<multi-edge-cons>{ <node>}')'|'(?' <node>{ <attr>}')'
  <edge-cons> ::= '->'|'--'
  <multi-edge-cons> ::= '-->'|'->>'|'---'|'-<'|'O'

  <rank> ::= '(rank' <rank-keyword>{ <node>}')'|'(~'{ <node>}')'
  <rank-keyword> ::= :same|:min|:max|:source|:sink

  <with> ::= '('<with-op> <attr-list> <graph-elts> ')'
  <with-op> ::= 'with-node'|'with-edge'

  <html-like-label> ::= '(html'{ <tag>| <txt>}')'
  <txt> ::= <string>|<number>
  <tag> ::= '('<tag-cons> <tag-body>')'
  <tag-cons> ::= 'table'|'font'|'i'|'b'|'u'|'sub'|'sup'|'br'|'hr'|'tr'|'vr'|'td'|'img'
  <tag-body> ::= <tag>|<attr>|<txt>|<tag-body>{ <tag-body>}

Author, License, Copyright


Next: , Previous: , Up: Top   [Contents][Index]

2 Systems

The main system appears first, followed by any subsystem dependency.


Previous: , Up: Systems   [Contents][Index]

2.1 donuts

Author

Takaya OCHIAI <tkych.repl@gmail.com>

License

MIT licence

Description

Graph DSL for common lisp

Long Description

Donuts is Graphviz interface for common lisp.
It requires the Graphviz system (http://www.graphviz.org/).

Version

0.3.1

Dependencies
Source

donuts.asd (file)

Components

Next: , Previous: , Up: Top   [Contents][Index]

3 Modules

Modules are listed depth-first from the system components tree.


Previous: , Up: Modules   [Contents][Index]

3.1 donuts/src

Dependency

cl-utils.lisp (file)

Parent

donuts (system)

Location

src/

Components

Next: , Previous: , Up: Top   [Contents][Index]

4 Files

Files are sorted by type and then listed depth-first from the systems components trees.


Previous: , Up: Files   [Contents][Index]

4.1 Lisp


Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.1 donuts.asd

Location

donuts.asd

Systems

donuts (system)

Packages

donuts-asd


Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.2 donuts/in-package.lisp

Parent

donuts (system)

Location

in-package.lisp

Packages

in-donuts


Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.3 donuts/cl-utils.lisp

Dependency

in-package.lisp (file)

Parent

donuts (system)

Location

cl-utils.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.4 donuts/src/node.lisp

Parent

src (module)

Location

src/node.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.5 donuts/src/edge.lisp

Parent

src (module)

Location

src/edge.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.6 donuts/src/graph.lisp

Parent

src (module)

Location

src/graph.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.7 donuts/src/dot-output.lisp

Parent

src (module)

Location

src/dot-output.lisp

Exported Definitions

dot-output (function)

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.8 donuts/src/shell.lisp

Parent

src (module)

Location

src/shell.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.9 donuts/src/html-like-labels.lisp

Parent

src (module)

Location

src/html-like-labels.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.10 donuts/src/donuts-utils.lisp

Parent

src (module)

Location

src/donuts-utils.lisp

Exported Definitions

Previous: , Up: Lisp files   [Contents][Index]

4.1.11 donuts/api-package.lisp

Dependency

src (module)

Parent

donuts (system)

Location

api-package.lisp

Packages

donuts


Next: , Previous: , Up: Top   [Contents][Index]

5 Packages

Packages are listed by definition order.


Next: , Previous: , Up: Packages   [Contents][Index]

5.1 donuts-asd

Source

donuts.asd

Use List

Next: , Previous: , Up: Packages   [Contents][Index]

5.2 in-donuts

Source

in-package.lisp (file)

Use List

common-lisp

Exported Definitions
Internal Definitions

Previous: , Up: Packages   [Contents][Index]

5.3 donuts

Source

api-package.lisp (file)

Use List

common-lisp


Next: , Previous: , Up: Top   [Contents][Index]

6 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


Next: , Previous: , Up: Definitions   [Contents][Index]

6.1 Exported definitions


Next: , Previous: , Up: Exported definitions   [Contents][Index]

6.1.1 Macros

Macro: $ (&key OUTFILE LAYOUT SHOW) GRAPH
Package

in-donuts

Source

shell.lisp (file)

Macro: $$ GRAPH
Package

in-donuts

Source

donuts-utils.lisp (file)

Macro: & (&rest GRAPH-ATTRS) &body NODES-EDGES-GRAPHS
Package

in-donuts

Source

graph.lisp (file)

Macro: [&] (&rest GRAPH-ATTRS) &body NODES-EDGES-GRAPHS
Package

in-donuts

Source

graph.lisp (file)

Macro: html &rest BODY
Package

in-donuts

Source

html-like-labels.lisp (file)

Macro: with-edge (&rest EDGE-ATTRS) &body BODY
Package

in-donuts

Source

edge.lisp (file)

Macro: with-node (&rest NODE-ATTRS) &body BODY
Package

in-donuts

Source

node.lisp (file)


Previous: , Up: Exported definitions   [Contents][Index]

6.1.2 Functions

Function: && &rest NODES-EDGES-GRAPHS
Package

in-donuts

Source

graph.lisp (file)

Function: -- NODE1 NODE2 &rest PATH-ATTRS
Package

in-donuts

Source

edge.lisp (file)

Function: --- &rest NODES
Package

in-donuts

Source

edge.lisp (file)

Function: --> &rest NODES
Package

in-donuts

Source

edge.lisp (file)

Function: -< ORIGIN-NODE &rest NODES
Package

in-donuts

Source

edge.lisp (file)

Function: -> NODE1 NODE2 &rest EDGE-ATTRS
Package

in-donuts

Source

edge.lisp (file)

Function: ->> ORIGIN-NODE &rest NODES
Package

in-donuts

Source

edge.lisp (file)

Function: <> LABEL &rest NODE-ATTRS
Package

in-donuts

Source

node.lisp (file)

Function: ==> &rest NODES
Package

in-donuts

Source

edge.lisp (file)

Function: ? NODE &rest EDGE-ATTRS
Package

in-donuts

Source

donuts-utils.lisp (file)

Function: @ NODE &rest PORTS
Package

in-donuts

Source

node.lisp (file)

Function: [] LABEL &rest RECORD-ATTRS
Package

in-donuts

Source

node.lisp (file)

Function: b &rest attrs-tag-body-26
Package

in-donuts

Source

html-like-labels.lisp (file)

Function: br &rest attrs-tag-body-0
Package

in-donuts

Source

html-like-labels.lisp (file)

Function: dot-output GRAPH
Package

in-donuts

Source

dot-output.lisp (file)

Function: dot-pprint GRAPH
Package

in-donuts

Source

shell.lisp (file)

Function: font &rest attrs-tag-body-0
Package

in-donuts

Source

html-like-labels.lisp (file)

Function: hr &rest attrs-tag-body-13
Package

in-donuts

Source

html-like-labels.lisp (file)

Function: i &rest attrs-tag-body-13
Package

in-donuts

Source

html-like-labels.lisp (file)

Function: img &rest attrs-tag-body-39
Package

in-donuts

Source

html-like-labels.lisp (file)

Function: o &rest NODES
Package

in-donuts

Source

donuts-utils.lisp (file)

Function: rank POS &rest NODES
Package

in-donuts

Source

node.lisp (file)

Function: sub &rest attrs-tag-body-52
Package

in-donuts

Source

html-like-labels.lisp (file)

Function: sup &rest attrs-tag-body-65
Package

in-donuts

Source

html-like-labels.lisp (file)

Function: table &rest attrs-tag-body-78
Package

in-donuts

Source

html-like-labels.lisp (file)

Function: td &rest attrs-tag-body-104
Package

in-donuts

Source

html-like-labels.lisp (file)

Function: tr &rest attrs-tag-body-91
Package

in-donuts

Source

html-like-labels.lisp (file)

Function: u &rest attrs-tag-body-39
Package

in-donuts

Source

html-like-labels.lisp (file)

Function: vr &rest attrs-tag-body-26
Package

in-donuts

Source

html-like-labels.lisp (file)

Function: ~ &rest NODES
Package

in-donuts

Source

donuts-utils.lisp (file)


Previous: , Up: Definitions   [Contents][Index]

6.2 Internal definitions


Next: , Previous: , Up: Internal definitions   [Contents][Index]

6.2.1 Special variables

Special Variable: *capital-vals*
Package

in-donuts

Source

dot-output.lisp (file)

Special Variable: *compass*
Package

in-donuts

Source

node.lisp (file)

Special Variable: *declared*
Package

in-donuts

Source

dot-output.lisp (file)

Special Variable: *directed?*
Package

in-donuts

Source

edge.lisp (file)

Special Variable: *rank-pos*
Package

in-donuts

Source

node.lisp (file)

Special Variable: *upper-vals*
Package

in-donuts

Source

dot-output.lisp (file)

Special Variable: *url-attrs*
Package

in-donuts

Source

dot-output.lisp (file)

Special Variable: *viewer*
Package

in-donuts

Source

shell.lisp (file)

Special Variable: *with-edge-context*
Package

in-donuts

Source

edge.lisp (file)

Special Variable: *with-node-context*
Package

in-donuts

Source

node.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

6.2.2 Macros

Macro: ^ LAMBDALIST &rest BODY

Abbrev: (^ (x) body) <-> (lambda (x) body)

Package

in-donuts

Source

cl-utils.lisp (file)

Macro: aif TEST THEN &optional ELSE
Package

in-donuts

Source

cl-utils.lisp (file)

Macro: another-name ALIAS NAME
Package

in-donuts

Source

cl-utils.lisp (file)

Macro: another-names &rest NAMES
Package

in-donuts

Source

cl-utils.lisp (file)

Macro: awhen TEST &body BODY
Package

in-donuts

Source

cl-utils.lisp (file)

Macro: def-tag TAG-NAME &optional PAIR?
Package

in-donuts

Source

html-like-labels.lisp (file)

Macro: def-tags PAIR? NAMES
Package

in-donuts

Source

html-like-labels.lisp (file)

Macro: mvbind VARS VALUE-FORM &body BODY
Package

in-donuts

Source

SYS:SRC;CODE;DEFBOOT.LISP (not found)

Macro: unwind-delfile (FILE) &body BODY
Package

in-donuts

Source

cl-utils.lisp (file)

Macro: with-gensyms SYMS &body BODY
Package

in-donuts

Source

cl-utils.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

6.2.3 Functions

Function: 1st LIST

Return the 1st object in a list or NIL if the list is empty.

Package

in-donuts

Source

SYS:SRC;CODE;LIST.LISP (not found)

Function: 2nd LIST

Return the 2nd object in a list or NIL if there is no 2nd object.

Package

in-donuts

Source

SYS:SRC;CODE;LIST.LISP (not found)

Function: capital-val? X
Package

in-donuts

Source

dot-output.lisp (file)

Function: cluster? X
Package

in-donuts

Source

graph.lisp (file)

Function: compass-port? X
Package

in-donuts

Source

node.lisp (file)

Function: conc1 LST ELT
Package

in-donuts

Source

cl-utils.lisp (file)

Function: converge-edge? X
Package

in-donuts

Source

edge.lisp (file)

Function: declare-node NODE
Package

in-donuts

Source

dot-output.lisp (file)

Function: declared? NODE
Package

in-donuts

Source

dot-output.lisp (file)

Function: edge? X
Package

in-donuts

Source

edge.lisp (file)

Function: escape-attrs ALST
Package

in-donuts

Source

dot-output.lisp (file)

Function: escape-port LABEL
Package

in-donuts

Source

node.lisp (file)

Function: escape-url-attr URL-ATTR
Package

in-donuts

Source

dot-output.lisp (file)

Function: file-to-string FILE
Package

in-donuts

Source

cl-utils.lisp (file)

Function: find-port LABEL
Package

in-donuts

Source

node.lisp (file)

Function: graph? X
Package

in-donuts

Source

graph.lisp (file)

Function: last1 LST
Package

in-donuts

Source

cl-utils.lisp (file)

Function: make-cluster CLUSTER-ATTRS &rest NODES-EDGES-GRAPHS
Package

in-donuts

Source

graph.lisp (file)

Function: make-dot-file GRAPH &optional FILE-NAME PPRINT?
Package

in-donuts

Source

shell.lisp (file)

Function: make-graph GRAPH-ATTRS &rest NODES-EDGES-GRAPHS
Package

in-donuts

Source

graph.lisp (file)

Function: make-image DOT-FILE LAYOUT IMAGE-FILE
Package

in-donuts

Source

shell.lisp (file)

Function: make-sesame TAG TREASURE
Package

in-donuts

Source

cl-utils.lisp (file)

Function: make-tag NAME PAIR? &rest BODY
Package

in-donuts

Source

html-like-labels.lisp (file)

Function: name-of NODE
Package

in-donuts

Source

node.lisp (file)

Function: node? X
Package

in-donuts

Source

node.lisp (file)

Function: open-sesame SESAME
Package

in-donuts

Source

cl-utils.lisp (file)

Function: output-buff BUFF
Package

in-donuts

Source

dot-output.lisp (file)

Function: output-node NODE
Package

in-donuts

Source

dot-output.lisp (file)

Function: output-pprint DOT-FILE
Package

in-donuts

Source

shell.lisp (file)

Function: output-sesame SESAME
Package

in-donuts

Source

dot-output.lisp (file)

Function: path? X
Package

in-donuts

Source

edge.lisp (file)

Function: penetrate-edge? X
Package

in-donuts

Source

edge.lisp (file)

Function: penetrate-path? X
Package

in-donuts

Source

edge.lisp (file)

Function: port-exist? NODE PORT
Package

in-donuts

Source

node.lisp (file)

Function: port-proc1 NODE PORTS
Package

in-donuts

Source

node.lisp (file)

Function: port-proc2 NODE PORTS
Package

in-donuts

Source

node.lisp (file)

Function: pre-node? X
Package

in-donuts

Source

node.lisp (file)

Function: print-body BODY
Package

in-donuts

Source

html-like-labels.lisp (file)

Function: print-tag TAG
Package

in-donuts

Source

html-like-labels.lisp (file)

Function: radiate-edge? X
Package

in-donuts

Source

edge.lisp (file)

Function: radiate-path? X
Package

in-donuts

Source

edge.lisp (file)

Function: rank-pos? X
Package

in-donuts

Source

node.lisp (file)

Function: record? X
Package

in-donuts

Source

node.lisp (file)

Function: scan-body BODY
Package

in-donuts

Source

html-like-labels.lisp (file)

Function: sesame? X
Package

in-donuts

Source

cl-utils.lisp (file)

Function: show-image IMAGE-FILE
Package

in-donuts

Source

shell.lisp (file)

Function: str &rest STRINGS
Package

in-donuts

Source

cl-utils.lisp (file)

Function: str->key STRING
Package

in-donuts

Source

cl-utils.lisp (file)

Function: tag? X
Package

in-donuts

Source

html-like-labels.lisp (file)

Function: upper-val? X
Package

in-donuts

Source

dot-output.lisp (file)

Function: url-attr? X
Package

in-donuts

Source

dot-output.lisp (file)

Function: ~& &optional STREAM
Package

in-donuts

Source

SYS:SRC;CODE;STREAM.LISP (not found)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

6.2.4 Generic functions

Generic Function: make-inst CLASS &rest INITARGS &key &allow-other-keys
Package

in-donuts

Source

SYS:SRC;PCL;GENERIC-FUNCTIONS.LISP.NEWEST (not found)

Methods
Method: make-inst (CLASS symbol) &rest INITARGS
Source

SYS:SRC;PCL;INIT.LISP.NEWEST (not found)

Method: make-inst (CLASS class) &rest INITARGS
Source

SYS:SRC;PCL;INIT.LISP.NEWEST (not found)

Generic Function: output-edge EDGE
Package

in-donuts

Source

dot-output.lisp (file)

Methods
Method: output-edge (EDGE converge-edge)
Method: output-edge (EDGE radiate-edge)
Method: output-edge (EDGE penetrate-edge)
Method: output-edge (EDGE normal-edge)
Method: output-edge (EDGE edge) around
Generic Function: output-subgraph GRAPH
Package

in-donuts

Source

dot-output.lisp (file)

Methods
Method: output-subgraph (CLUSTER cluster)
Method: output-subgraph (GRAPH graph)

Previous: , Up: Internal definitions   [Contents][Index]

6.2.5 Classes

Class: cluster ()
Package

in-donuts

Source

graph.lisp (file)

Direct superclasses

graph (class)

Direct methods
Class: converge-edge ()
Package

in-donuts

Source

edge.lisp (file)

Direct superclasses

edge (class)

Direct methods
  • output-edge (method)
  • print-object (method)
  • converge-node (method)
  • converge-node (method)
  • nodes (method)
  • nodes (method)
Direct slots
Slot: nodes
Initargs

:nodes

Readers

nodes (generic function)

Writers

(setf nodes) (generic function)

Slot: converge-node
Initargs

:converge-node

Readers

converge-node (generic function)

Writers

(setf converge-node) (generic function)

Class: edge ()
Package

in-donuts

Source

edge.lisp (file)

Direct superclasses

standard-object (class)

Direct subclasses
Direct methods
  • output-edge (method)
  • context (method)
  • context (method)
  • name (method)
  • name (method)
Direct slots
Slot: name
Initargs

:name

Readers

name (generic function)

Writers

(setf name) (generic function)

Slot: context
Initargs

:context

Readers

context (generic function)

Writers

(setf context) (generic function)

Class: graph ()
Package

in-donuts

Source

graph.lisp (file)

Direct superclasses

standard-object (class)

Direct subclasses

cluster (class)

Direct methods
  • output-subgraph (method)
  • print-object (method)
  • strict (method)
  • strict (method)
  • dir (method)
  • dir (method)
  • cache (method)
  • cache (method)
  • buff (method)
  • buff (method)
  • attrs (method)
  • attrs (method)
  • name (method)
  • name (method)
Direct slots
Slot: name
Initargs

:name

Readers

name (generic function)

Writers

(setf name) (generic function)

Slot: attrs
Initargs

:attrs

Readers

attrs (generic function)

Writers

(setf attrs) (generic function)

Slot: buff
Initargs

:buff

Readers

buff (generic function)

Writers

(setf buff) (generic function)

Slot: cache
Initargs

:cache

Readers

cache (generic function)

Writers

(setf cache) (generic function)

Slot: dir
Initargs

:dir

Initform

t

Readers

dir (generic function)

Writers

(setf dir) (generic function)

Slot: strict
Initargs

:strict

Readers

strict (generic function)

Writers

(setf strict) (generic function)

Class: node ()
Package

in-donuts

Source

node.lisp (file)

Direct superclasses

standard-object (class)

Direct subclasses

record (class)

Direct methods
  • print-object (method)
  • ports (method)
  • ports (method)
  • attrs (method)
  • attrs (method)
  • name (method)
  • name (method)
Direct slots
Slot: name
Initargs

:name

Readers

name (generic function)

Writers

(setf name) (generic function)

Slot: attrs
Initargs

:attrs

Readers

attrs (generic function)

Writers

(setf attrs) (generic function)

Slot: ports
Initargs

:ports

Readers

ports (generic function)

Writers

(setf ports) (generic function)

Class: normal-edge ()
Package

in-donuts

Source

edge.lisp (file)

Direct superclasses

edge (class)

Direct subclasses

normal-path (class)

Direct methods
  • output-edge (method)
  • print-object (method)
  • attrs (method)
  • attrs (method)
  • node2 (method)
  • node2 (method)
  • node1 (method)
  • node1 (method)
Direct slots
Slot: node1
Initargs

:node1

Readers

node1 (generic function)

Writers

(setf node1) (generic function)

Slot: node2
Initargs

:node2

Readers

node2 (generic function)

Writers

(setf node2) (generic function)

Slot: attrs
Initargs

:attrs

Readers

attrs (generic function)

Writers

(setf attrs) (generic function)

Class: normal-path ()
Package

in-donuts

Source

edge.lisp (file)

Direct superclasses
Direct methods

print-object (method)

Class: path ()
Package

in-donuts

Source

edge.lisp (file)

Direct superclasses

edge (class)

Direct subclasses
Class: penetrate-edge ()
Package

in-donuts

Source

edge.lisp (file)

Direct superclasses

edge (class)

Direct subclasses

penetrate-path (class)

Direct methods
  • output-edge (method)
  • print-object (method)
  • nodes (method)
  • nodes (method)
Direct slots
Slot: nodes
Initargs

:nodes

Readers

nodes (generic function)

Writers

(setf nodes) (generic function)

Class: penetrate-path ()
Package

in-donuts

Source

edge.lisp (file)

Direct superclasses
Direct methods

print-object (method)

Class: radiate-edge ()
Package

in-donuts

Source

edge.lisp (file)

Direct superclasses

edge (class)

Direct subclasses

radiate-path (class)

Direct methods
  • output-edge (method)
  • print-object (method)
  • nodes (method)
  • nodes (method)
  • origin-node (method)
  • origin-node (method)
Direct slots
Slot: origin-node
Initargs

:origin-node

Readers

origin-node (generic function)

Writers

(setf origin-node) (generic function)

Slot: nodes
Initargs

:nodes

Readers

nodes (generic function)

Writers

(setf nodes) (generic function)

Class: radiate-path ()
Package

in-donuts

Source

edge.lisp (file)

Direct superclasses
Direct methods

print-object (method)

Class: record ()
Package

in-donuts

Source

node.lisp (file)

Direct superclasses

node (class)

Direct methods
  • ports (method)
  • ports (method)
Direct slots
Slot: ports
Initargs

:ports

Readers

ports (generic function)

Writers

(setf ports) (generic function)

Class: sesame ()
Package

in-donuts

Source

cl-utils.lisp (file)

Direct superclasses

standard-object (class)

Direct methods
  • treasure (method)
  • treasure (method)
  • tag (method)
  • tag (method)
Direct slots
Slot: tag
Initargs

:tag

Readers

tag (generic function)

Writers

(setf tag) (generic function)

Slot: treasure
Initargs

:treasure

Readers

treasure (generic function)

Writers

(setf treasure) (generic function)

Class: tag ()
Package

in-donuts

Source

html-like-labels.lisp (file)

Direct superclasses

standard-object (class)

Direct methods
  • body (method)
  • body (method)
  • attrs (method)
  • attrs (method)
  • pair? (method)
  • pair? (method)
  • name (method)
  • name (method)
Direct slots
Slot: name
Initargs

:name

Readers

name (generic function)

Writers

(setf name) (generic function)

Slot: pair?
Initargs

:pair?

Initform

t

Readers

pair? (generic function)

Writers

(setf pair?) (generic function)

Slot: attrs
Initargs

:attrs

Readers

attrs (generic function)

Writers

(setf attrs) (generic function)

Slot: body
Initargs

:body

Readers

body (generic function)

Writers

(setf body) (generic function)


Previous: , Up: Top   [Contents][Index]

Appendix A Indexes


Next: , Previous: , Up: Indexes   [Contents][Index]

A.1 Concepts

Jump to:   D   F   L   M  
Index Entry  Section

D
donuts.asd: The donuts<dot>asd file
donuts/api-package.lisp: The donuts/api-package<dot>lisp file
donuts/cl-utils.lisp: The donuts/cl-utils<dot>lisp file
donuts/in-package.lisp: The donuts/in-package<dot>lisp file
donuts/src: The donuts/src module
donuts/src/donuts-utils.lisp: The donuts/src/donuts-utils<dot>lisp file
donuts/src/dot-output.lisp: The donuts/src/dot-output<dot>lisp file
donuts/src/edge.lisp: The donuts/src/edge<dot>lisp file
donuts/src/graph.lisp: The donuts/src/graph<dot>lisp file
donuts/src/html-like-labels.lisp: The donuts/src/html-like-labels<dot>lisp file
donuts/src/node.lisp: The donuts/src/node<dot>lisp file
donuts/src/shell.lisp: The donuts/src/shell<dot>lisp file

F
File, Lisp, donuts.asd: The donuts<dot>asd file
File, Lisp, donuts/api-package.lisp: The donuts/api-package<dot>lisp file
File, Lisp, donuts/cl-utils.lisp: The donuts/cl-utils<dot>lisp file
File, Lisp, donuts/in-package.lisp: The donuts/in-package<dot>lisp file
File, Lisp, donuts/src/donuts-utils.lisp: The donuts/src/donuts-utils<dot>lisp file
File, Lisp, donuts/src/dot-output.lisp: The donuts/src/dot-output<dot>lisp file
File, Lisp, donuts/src/edge.lisp: The donuts/src/edge<dot>lisp file
File, Lisp, donuts/src/graph.lisp: The donuts/src/graph<dot>lisp file
File, Lisp, donuts/src/html-like-labels.lisp: The donuts/src/html-like-labels<dot>lisp file
File, Lisp, donuts/src/node.lisp: The donuts/src/node<dot>lisp file
File, Lisp, donuts/src/shell.lisp: The donuts/src/shell<dot>lisp file

L
Lisp File, donuts.asd: The donuts<dot>asd file
Lisp File, donuts/api-package.lisp: The donuts/api-package<dot>lisp file
Lisp File, donuts/cl-utils.lisp: The donuts/cl-utils<dot>lisp file
Lisp File, donuts/in-package.lisp: The donuts/in-package<dot>lisp file
Lisp File, donuts/src/donuts-utils.lisp: The donuts/src/donuts-utils<dot>lisp file
Lisp File, donuts/src/dot-output.lisp: The donuts/src/dot-output<dot>lisp file
Lisp File, donuts/src/edge.lisp: The donuts/src/edge<dot>lisp file
Lisp File, donuts/src/graph.lisp: The donuts/src/graph<dot>lisp file
Lisp File, donuts/src/html-like-labels.lisp: The donuts/src/html-like-labels<dot>lisp file
Lisp File, donuts/src/node.lisp: The donuts/src/node<dot>lisp file
Lisp File, donuts/src/shell.lisp: The donuts/src/shell<dot>lisp file

M
Module, donuts/src: The donuts/src module

Jump to:   D   F   L   M  

Next: , Previous: , Up: Indexes   [Contents][Index]

A.2 Functions

Jump to:   $   &   -   1   2   <   =   ?   @   [   ^   ~  
A   B   C   D   E   F   G   H   I   L   M   N   O   P   R   S   T   U   V   W  
Index Entry  Section

$
$: Exported macros
$$: Exported macros

&
&: Exported macros
&&: Exported functions

-
--: Exported functions
---: Exported functions
-->: Exported functions
-<: Exported functions
->: Exported functions
->>: Exported functions

1
1st: Internal functions

2
2nd: Internal functions

<
<>: Exported functions

=
==>: Exported functions

?
?: Exported functions

@
@: Exported functions

[
[&]: Exported macros
[]: Exported functions

^
^: Internal macros

~
~: Exported functions
~&: Internal functions

A
aif: Internal macros
another-name: Internal macros
another-names: Internal macros
awhen: Internal macros

B
b: Exported functions
br: Exported functions

C
capital-val?: Internal functions
cluster?: Internal functions
compass-port?: Internal functions
conc1: Internal functions
converge-edge?: Internal functions

D
declare-node: Internal functions
declared?: Internal functions
def-tag: Internal macros
def-tags: Internal macros
dot-output: Exported functions
dot-pprint: Exported functions

E
edge?: Internal functions
escape-attrs: Internal functions
escape-port: Internal functions
escape-url-attr: Internal functions

F
file-to-string: Internal functions
find-port: Internal functions
font: Exported functions
Function, &&: Exported functions
Function, --: Exported functions
Function, ---: Exported functions
Function, -->: Exported functions
Function, -<: Exported functions
Function, ->: Exported functions
Function, ->>: Exported functions
Function, 1st: Internal functions
Function, 2nd: Internal functions
Function, <>: Exported functions
Function, ==>: Exported functions
Function, ?: Exported functions
Function, @: Exported functions
Function, b: Exported functions
Function, br: Exported functions
Function, capital-val?: Internal functions
Function, cluster?: Internal functions
Function, compass-port?: Internal functions
Function, conc1: Internal functions
Function, converge-edge?: Internal functions
Function, declare-node: Internal functions
Function, declared?: Internal functions
Function, dot-output: Exported functions
Function, dot-pprint: Exported functions
Function, edge?: Internal functions
Function, escape-attrs: Internal functions
Function, escape-port: Internal functions
Function, escape-url-attr: Internal functions
Function, file-to-string: Internal functions
Function, find-port: Internal functions
Function, font: Exported functions
Function, graph?: Internal functions
Function, hr: Exported functions
Function, i: Exported functions
Function, img: Exported functions
Function, last1: Internal functions
Function, make-cluster: Internal functions
Function, make-dot-file: Internal functions
Function, make-graph: Internal functions
Function, make-image: Internal functions
Function, make-sesame: Internal functions
Function, make-tag: Internal functions
Function, name-of: Internal functions
Function, node?: Internal functions
Function, o: Exported functions
Function, open-sesame: Internal functions
Function, output-buff: Internal functions
Function, output-node: Internal functions
Function, output-pprint: Internal functions
Function, output-sesame: Internal functions
Function, path?: Internal functions
Function, penetrate-edge?: Internal functions
Function, penetrate-path?: Internal functions
Function, port-exist?: Internal functions
Function, port-proc1: Internal functions
Function, port-proc2: Internal functions
Function, pre-node?: Internal functions
Function, print-body: Internal functions
Function, print-tag: Internal functions
Function, radiate-edge?: Internal functions
Function, radiate-path?: Internal functions
Function, rank: Exported functions
Function, rank-pos?: Internal functions
Function, record?: Internal functions
Function, scan-body: Internal functions
Function, sesame?: Internal functions
Function, show-image: Internal functions
Function, str: Internal functions
Function, str->key: Internal functions
Function, sub: Exported functions
Function, sup: Exported functions
Function, table: Exported functions
Function, tag?: Internal functions
Function, td: Exported functions
Function, tr: Exported functions
Function, u: Exported functions
Function, upper-val?: Internal functions
Function, url-attr?: Internal functions
Function, vr: Exported functions
Function, []: Exported functions
Function, ~: Exported functions
Function, ~&: Internal functions

G
Generic Function, make-inst: Internal generic functions
Generic Function, output-edge: Internal generic functions
Generic Function, output-subgraph: Internal generic functions
graph?: Internal functions

H
hr: Exported functions
html: Exported macros

I
i: Exported functions
img: Exported functions

L
last1: Internal functions

M
Macro, $: Exported macros
Macro, $$: Exported macros
Macro, &: Exported macros
Macro, aif: Internal macros
Macro, another-name: Internal macros
Macro, another-names: Internal macros
Macro, awhen: Internal macros
Macro, def-tag: Internal macros
Macro, def-tags: Internal macros
Macro, html: Exported macros
Macro, mvbind: Internal macros
Macro, unwind-delfile: Internal macros
Macro, with-edge: Exported macros
Macro, with-gensyms: Internal macros
Macro, with-node: Exported macros
Macro, [&]: Exported macros
Macro, ^: Internal macros
make-cluster: Internal functions
make-dot-file: Internal functions
make-graph: Internal functions
make-image: Internal functions
make-inst: Internal generic functions
make-inst: Internal generic functions
make-inst: Internal generic functions
make-sesame: Internal functions
make-tag: Internal functions
Method, make-inst: Internal generic functions
Method, make-inst: Internal generic functions
Method, output-edge: Internal generic functions
Method, output-edge: Internal generic functions
Method, output-edge: Internal generic functions
Method, output-edge: Internal generic functions
Method, output-edge: Internal generic functions
Method, output-subgraph: Internal generic functions
Method, output-subgraph: Internal generic functions
mvbind: Internal macros

N
name-of: Internal functions
node?: Internal functions

O
o: Exported functions
open-sesame: Internal functions
output-buff: Internal functions
output-edge: Internal generic functions
output-edge: Internal generic functions
output-edge: Internal generic functions
output-edge: Internal generic functions
output-edge: Internal generic functions
output-edge: Internal generic functions
output-node: Internal functions
output-pprint: Internal functions
output-sesame: Internal functions
output-subgraph: Internal generic functions
output-subgraph: Internal generic functions
output-subgraph: Internal generic functions

P
path?: Internal functions
penetrate-edge?: Internal functions
penetrate-path?: Internal functions
port-exist?: Internal functions
port-proc1: Internal functions
port-proc2: Internal functions
pre-node?: Internal functions
print-body: Internal functions
print-tag: Internal functions

R
radiate-edge?: Internal functions
radiate-path?: Internal functions
rank: Exported functions
rank-pos?: Internal functions
record?: Internal functions

S
scan-body: Internal functions
sesame?: Internal functions
show-image: Internal functions
str: Internal functions
str->key: Internal functions
sub: Exported functions
sup: Exported functions

T
table: Exported functions
tag?: Internal functions
td: Exported functions
tr: Exported functions

U
u: Exported functions
unwind-delfile: Internal macros
upper-val?: Internal functions
url-attr?: Internal functions

V
vr: Exported functions

W
with-edge: Exported macros
with-gensyms: Internal macros
with-node: Exported macros

Jump to:   $   &   -   1   2   <   =   ?   @   [   ^   ~  
A   B   C   D   E   F   G   H   I   L   M   N   O   P   R   S   T   U   V   W  

Next: , Previous: , Up: Indexes   [Contents][Index]

A.3 Variables

Jump to:   *  
A   B   C   D   N   O   P   S   T  
Index Entry  Section

*
*capital-vals*: Internal special variables
*compass*: Internal special variables
*declared*: Internal special variables
*directed?*: Internal special variables
*rank-pos*: Internal special variables
*upper-vals*: Internal special variables
*url-attrs*: Internal special variables
*viewer*: Internal special variables
*with-edge-context*: Internal special variables
*with-node-context*: Internal special variables

A
attrs: Internal classes
attrs: Internal classes
attrs: Internal classes
attrs: Internal classes

B
body: Internal classes
buff: Internal classes

C
cache: Internal classes
context: Internal classes
converge-node: Internal classes

D
dir: Internal classes

N
name: Internal classes
name: Internal classes
name: Internal classes
name: Internal classes
node1: Internal classes
node2: Internal classes
nodes: Internal classes
nodes: Internal classes
nodes: Internal classes

O
origin-node: Internal classes

P
pair?: Internal classes
ports: Internal classes
ports: Internal classes

S
Slot, attrs: Internal classes
Slot, attrs: Internal classes
Slot, attrs: Internal classes
Slot, attrs: Internal classes
Slot, body: Internal classes
Slot, buff: Internal classes
Slot, cache: Internal classes
Slot, context: Internal classes
Slot, converge-node: Internal classes
Slot, dir: Internal classes
Slot, name: Internal classes
Slot, name: Internal classes
Slot, name: Internal classes
Slot, name: Internal classes
Slot, node1: Internal classes
Slot, node2: Internal classes
Slot, nodes: Internal classes
Slot, nodes: Internal classes
Slot, nodes: Internal classes
Slot, origin-node: Internal classes
Slot, pair?: Internal classes
Slot, ports: Internal classes
Slot, ports: Internal classes
Slot, strict: Internal classes
Slot, tag: Internal classes
Slot, treasure: Internal classes
Special Variable, *capital-vals*: Internal special variables
Special Variable, *compass*: Internal special variables
Special Variable, *declared*: Internal special variables
Special Variable, *directed?*: Internal special variables
Special Variable, *rank-pos*: Internal special variables
Special Variable, *upper-vals*: Internal special variables
Special Variable, *url-attrs*: Internal special variables
Special Variable, *viewer*: Internal special variables
Special Variable, *with-edge-context*: Internal special variables
Special Variable, *with-node-context*: Internal special variables
strict: Internal classes

T
tag: Internal classes
treasure: Internal classes

Jump to:   *  
A   B   C   D   N   O   P   S   T  

Previous: , Up: Indexes   [Contents][Index]

A.4 Data types

Jump to:   C   D   E   G   I   N   P   R   S   T  
Index Entry  Section

C
Class, cluster: Internal classes
Class, converge-edge: Internal classes
Class, edge: Internal classes
Class, graph: Internal classes
Class, node: Internal classes
Class, normal-edge: Internal classes
Class, normal-path: Internal classes
Class, path: Internal classes
Class, penetrate-edge: Internal classes
Class, penetrate-path: Internal classes
Class, radiate-edge: Internal classes
Class, radiate-path: Internal classes
Class, record: Internal classes
Class, sesame: Internal classes
Class, tag: Internal classes
cluster: Internal classes
converge-edge: Internal classes

D
donuts: The donuts system
donuts: The donuts package
donuts-asd: The donuts-asd package

E
edge: Internal classes

G
graph: Internal classes

I
in-donuts: The in-donuts package

N
node: Internal classes
normal-edge: Internal classes
normal-path: Internal classes

P
Package, donuts: The donuts package
Package, donuts-asd: The donuts-asd package
Package, in-donuts: The in-donuts package
path: Internal classes
penetrate-edge: Internal classes
penetrate-path: Internal classes

R
radiate-edge: Internal classes
radiate-path: Internal classes
record: Internal classes

S
sesame: Internal classes
System, donuts: The donuts system

T
tag: Internal classes

Jump to:   C   D   E   G   I   N   P   R   S   T