This directory contains examples of state diagrams with input to and output
from drawstate.pl and drawstatexml.pl.  The .input files and their
corresponding .xml files produce the identical .svg output.  For those who
can't view SVG, PNG is also provided, along with instructions for
making it with Apache Batik.

This file explains the meaning of the diagrams.  The input formats
are described in drawstate.pl for the simple text format and in
state.dtd in the samples directory for the xml format.

Coins:
coinop.input coinop.xml coinop.svg coinop.png
Suppose you have a coin operated vending machine which accepts 5, 10, and
25 cent coins.  If it needs 25 cents for each purchase, accepting states
are 25 and 30 (this diagram is simplified, while still showing common
features).  The edges are numbered with coin denomination.  The
nodes are labeled with the accumlated total of coins deposited to date.
This example is the one that t/01state.t uses to test the generator.

    drawstate.pl coinop.input > coinop.svg

OR

    drawstatexml.pl coinop.xml > coinop.svg

THEN

    java -jar batik-rasterize.jar coinop.svg

Tennis:
tennis.input tennis.xml tennis.svg tennis.png
This represents the state machine for scoring tennis.  The edges are labeled S
for server and R for receiver of serve.  The nodes are labeled with things
the chair umpire might say at Wimbledon, except that the chair would replace
Server and Receiver with names.

    drawstate.pl tennis.input > tennis.svg

OR

    drawstatexml.pl tennis.xml > tennis.svg

THEN

    java -jar batik-rasterize.jar tennis.svg
