Common Lisp Package: CL-DOT

README:

CL-DOT CL-DOT is a small package for easily generating dot (a program in the GraphViz suite) output from arbitrary Lisp data.

Building Presuming ASDF is available:

(asdf:oos 'asdf:load-op :cl-dot) 

Depending on the Lisp being used, a (require :cl-dot) might do as well.

Documentation See directory docs/

Licence See file COPYING.

Canonical Download http://foldr.org/~michaelw/projects/cl-dot/

Authors Juho Snellman <jsnell@iki.fi>
Michael Weber <michaelw@foldr.org> (current maintainer)

FUNCTION

Public

DOT-GRAPH (GRAPH OUTFILE &KEY (FORMAT PS) (DIRECTED T))

Renders GRAPH to OUTFILE by running the program in *DOT-PATH* or *NEATO-PATH* depending on the value of the DIRECTED keyword argument. The default is a directed graph. The default FORMAT is Postscript.

Private

Undocumented

CONSTRUCT-GRAPH (GRAPH OBJECTS)

GENERATE-DOT (NODES EDGES ATTRIBUTES &KEY (STREAM *STANDARD-OUTPUT*) (DIRECTED T))

TEXTIFY (OBJECT &KEY ALIGNMENT)

GENERIC-FUNCTION

Public

GENERATE-GRAPH (OBJECT &OPTIONAL ATTRIBUTES)

Construct a GRAPH with ATTRIBUTES starting from OBJECT, using the GRAPH-OBJECT- protocol.

GENERATE-GRAPH-FROM-ROOTS (GRAPH OBJECTS &OPTIONAL ATTRIBUTES)

Constructs a GRAPH with ATTRIBUTES starting from OBJECTS, using the GRAPH-OBJECT- protocol.

GRAPH-OBJECT-EDGES (GRAPH)

Returns a sequence of edge specifications. An edge specification is a list (FROM TO [ATTRIBUTES]), where FROM and TO are objects of the graph and optional ATTRIBUTES is a plist of edge attributes.

GRAPH-OBJECT-KNOWS-OF (GRAPH OBJECT)

Returns a sequence of objects that this object knows should be part of the graph, but which it has no direct connections to.

GRAPH-OBJECT-NODE (GRAPH OBJECT)

Returns a NODE instance for this object, or NIL. In the latter case the object will not be included in the graph, but it can still have an indirect effect via other protocol functions (e.g. GRAPH-OBJECT-KNOWS-OF). This function will only be called once for each object during the generation of a graph.

GRAPH-OBJECT-POINTED-TO-BY (GRAPH OBJECT)

Returns a sequence of objects to which the NODE of this object should be connected. The edges will be directed from the other objects to this one. To assign dot attributes to the generated edges, each object can optionally be wrapped in a instance of ATTRIBUTED.

GRAPH-OBJECT-POINTS-TO (GRAPH OBJECT)

Returns a sequence of objects to which the NODE of this object should be connected. The edges will be directed from this object to the others. To assign dot attributes to the generated edges, each object can optionally be wrapped in a instance of ATTRIBUTED.

OBJECT-KNOWS-OF (OBJECT)

Return a list of objects that this object knows should be part of the graph, but which it has no direct connections to.

OBJECT-NODE (OBJECT)

Return a NODE instance for this object, or NIL. In the latter case the object will not be included in the graph, but it can still have an indirect effect via other protocol functions (e.g. OBJECT-KNOWS-OF). This function will only be called once for each object during the generation of a graph.

OBJECT-POINTED-TO-BY (OBJECT)

Return a list of objects to which the NODE of this object should be connected. The edges will be directed from the other objects to this one. To assign dot attributes to the generated edges, each object can optionally be wrapped in a instance of ATTRIBUTED.

OBJECT-POINTS-TO (OBJECT)

Return a list of objects to which the NODE of this object should be connected. The edges will be directed from this object to the others. To assign dot attributes to the generated edges, each object can optionally be wrapped in a instance of ATTRIBUTED.

SLOT-ACCESSOR

Private

Undocumented

ATTRIBUTES-OF (OBJECT)

SETFATTRIBUTES-OF (NEW-VALUE OBJECT)

EDGES-OF (OBJECT)

SETFEDGES-OF (NEW-VALUE OBJECT)

ID-OF (OBJECT)

SETFID-OF (NEW-VALUE OBJECT)

NODES-OF (OBJECT)

SETFNODES-OF (NEW-VALUE OBJECT)

OBJECT-OF (OBJECT)

SETFOBJECT-OF (NEW-VALUE OBJECT)

SOURCE-OF (OBJECT)

SETFSOURCE-OF (NEW-VALUE OBJECT)

TARGET-OF (OBJECT)

SETFTARGET-OF (NEW-VALUE OBJECT)

VARIABLE

Public

*DOT-PATH*

Path to the dot command

*NEATO-PATH*

Path to the neato command

Private

Undocumented

*EDGE-ATTRIBUTES*

*GRAPH-ATTRIBUTES*

*NODE-ATTRIBUTES*

CLASS

Public

ATTRIBUTED

Wraps an object (initarg :OBJECT) with `dot` attribute information (a plist, initarg :ATTRIBUTES)

NODE

A graph node with `dot` attributes (a plist, initarg :ATTRIBUTES) and an optional `dot` id (initarg :ID, autogenerated by default).

Private

Undocumented

EDGE

GRAPH