fsmActions-0.1: Finite state machines and FSM actions



Serialisation/deserialisation of FSMs as FSM transition matrices.

A FSM may be represented as an transition matrix whose rows correspond to states of the FSM, and whose columns correspond to its possible actions (labels on its transitions). A given cell then represents the transition(s) from some (row) state under some (column) action, and contains a comma-separated list of integers: the row numbers of the destination states. (Of course, for a deterministic action, there's just one, and no comma.) Rows are numbered from 0 and increment strictly.



parseFsmFile :: FilePath -> IO (FSM String)Source

Parse an FsmMatrix-formatted FSM held in a file, by reading the file and calling parseFsmString.

parseFsmString :: String -> ReadMxMonad (FSM String)Source

Parse an FsmMatrix-formatted FSM held in a string. Includes normalisation and well-formedness checks.

printFsmMatrix :: FSM String -> StringSource

Pretty-print a string FSM in FsmMatrix format.