The s-dot2 Reference Manual

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

The s-dot2 Reference Manual

This is the s-dot2 Reference Manual, version 1.3.0, generated automatically by Declt version 4.0 beta 2 "William Riker" on Mon Aug 15 05:47:54 2022 GMT+0.

Table of Contents


1 Introduction

* Notes on this version

*I  am  not the  original  author  of  this library,  Martin  Loetzsch
(http://www.martin-loetzsch.de/S-DOT) is.*

This version  (marked as 1.3) of  the library is a  patched version of
the  original  one[fn:origin-website]  made   to  use  some  new  uiop
features, sb-ext:run-program if available and to pass its own tests (I
was unable to make them pass them on my system).

Important note: I  have switched from symbols to keywords  for the DSL
(i.e s-dot::'node -> :node).


* BUGS

Please file bug report on
the [[https://notabug.org/cage/s-dot2/issues][issue tracker]].


* License

A  Common Lisp  language binding  for  the graphviz  'dot' tool.   See
http://www.martin-loetzsch.de/S-DOT for details

Copyright (c) 2006-2010 Martin Loetzsch.  All rights reserved.

Redistribution and  use in  source and binary  forms, with  or without
modification, are permitted provided that the following conditions are
met:

1. Redistributions of  source code  must retain  the above  copyright
   notice, this list of conditions and the following disclaimer.

2. Redistributions in  binary form must reproduce  the above copyright
   notice, this list of conditions and the following disclaimer in the
   documentation   and/or   other    materials   provided   with   the
   distribution.

3.  The end-user  documentation included  with the  redistribution, if
   any,  must  include  the following  acknowledgment:  "This  product
   includes      S-DOT      developed     by      Martin      Loetzsch
   (http://www.martin-loetzsch.de/S-DOT)."       Alternately,     this
   acknowledgment may appear  in the software itself,  if and wherever
   such third-party acknowledgments normally appear.

THIS  SOFTWARE  IS PROVIDED  BY  MARTIN  LOETZSCH  ``AS IS''  AND  ANY
EXPRESSED OR  IMPLIED WARRANTIES, INCLUDING,  BUT NOT LIMITED  TO, THE
IMPLIED  WARRANTIES OF  MERCHANTABILITY AND  FITNESS FOR  A PARTICULAR
PURPOSE ARE  DISCLAIMED. IN NO  EVENT SHALL MARTIN LOETZSCH  BE LIABLE
FOR  ANY   DIRECT,  INDIRECT,   INCIDENTAL,  SPECIAL,   EXEMPLARY,  OR
CONSEQUENTIAL DAMAGES  (INCLUDING, BUT NOT LIMITED  TO, PROCUREMENT OF
SUBSTITUTE  GOODS OR  SERVICES;  LOSS  OF USE,  DATA,  OR PROFITS;  OR
BUSINESS INTERRUPTION) HOWEVER CAUSED AND  ON ANY THEORY OF LIABILITY,
WHETHER IN  CONTRACT, STRICT LIABILITY, OR  TORT (INCLUDING NEGLIGENCE
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


[fn:origin-website] [[http://martin-loetzsch.de/S-DOT/][http://martin-loetzsch.de/S-DOT/]]


2 Systems

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


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

2.1 s-dot2

Render Graphviz graphs from within Lisp

Author

Martin Loetzsch, cage

License

BSD-style

Long Description

See http://martin-loetzsch.de/S-DOT/

Version

1.3.0

Dependency

uiop (system).

Source

s-dot2.asd.

Child Component

s-dot2.lisp (file).


3 Files

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


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

3.1 Lisp


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

3.1.1 s-dot2/s-dot2.asd

Source

s-dot2.asd.

Parent Component

s-dot2 (system).

ASDF Systems

s-dot2.


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

3.1.2 s-dot2/s-dot2.lisp

Source

s-dot2.asd.

Parent Component

s-dot2 (system).

Packages

s-dot.

Public Interface
Internals

4 Packages

Packages are listed by definition order.


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

4.1 s-dot

See http://martin-loetzsch.de/S-DOT

Source

s-dot2.lisp.

Use List
  • common-lisp.
  • uiop/driver.
Public Interface
Internals

5 Definitions

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


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

5.1 Public Interface


5.1.1 Special variables

Special Variable: *dot-exe*

the path (or name) name of the dot executable

Package

s-dot.

Source

s-dot2.lisp.


5.1.2 Ordinary functions

Function: check-syntax (graph &key level)

Checks whether the s-expression ’graph’ is syntactically correct. Note that it does not check whether the attributes contain useful values.

Package

s-dot.

Source

s-dot2.lisp.

Function: render-s-dot (file-name format graph &key check-syntax)

Renders a s-dot graph into a graphic file. ’file-name’ should be a pathname. If the file-name is /foo/bar.png, the dot file /foo/bar.dot is created and then rendered. Format should be one out of http://www.graphviz.org/doc/info/output.html, for example svg, ps, gif, png, or jpg. The uiop:run-program is used to launch dot. If that does not work for you, write a similar function that uses (s-dot->dot) for dot generation and then runs dot on it.

SBCL users may take advantage of sb-ext:run-program, opening a pipe to ’dot’ instead of writing a file and reading that in again.

Package

s-dot.

Source

s-dot2.lisp.

Function: render-s-dot-sbcl (file-name format graph &key check-syntax)
Package

s-dot.

Source

s-dot2.lisp.

Function: s-dot->dot (stream graph &key check-syntax)

Generates dot syntax from a s-dot expression and writes the result to ’stream’.
This code looks indeed ugly. If you really want to understand what’s going on, then it might be easier to look in the the XSLT stylesheet at http://www.martin-loetzsch.de/DOTML/dotml-1.3/dotml2dot.xsl . This code does exactly the same.

Package

s-dot.

Source

s-dot2.lisp.


5.2 Internals


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

5.2.1 Special variables

Special Variable: *dot-output-format-switch*

the command line option for dot needed to specify the output format

Package

s-dot.

Source

s-dot2.lisp.

Special Variable: s-dot-syntax
Package

s-dot.

Source

s-dot2.lisp.


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

5.2.2 Ordinary functions

Function: escape-record-label (raw &key escape-bag)
Package

s-dot.

Source

s-dot2.lisp.

Function: test-s-dot ()

Generates a few charts in the system temporary directory

Package

s-dot.

Source

s-dot2.lisp.


Appendix A Indexes


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

A.1 Concepts