aboutsummaryrefslogtreecommitdiff
path: root/README
blob: 6ec4d1f40fed8987c865b70aa15b8353a1ff5d5e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
If an emulation of a machine is a virtual machine, then this is VFSM: the Virtual Finite State Machine.

Usage is: ruby vfsm.rb <machine description file> <input>

A Machine description must have:
 * A Nodes: line, followed by space separated node ids
 * A Start: line, followed by the starting node id
 * An Accept: line, followed by space separated node ids which may accept
 * An Edges: line, followed by edge definition lines and an End: line

There may be any number of Comment: lines which are unsurprisingly ignored.

An edge definition line must have:
 * The source node
 * The input to accept
 * The destination node

The input is a string of space separated input tokens.

See the examples.