Serialisation/deserialisation of FSM
s 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)
- parseFsmString :: String -> ReadMxMonad (FSM String)
- printFsmMatrix :: FSM String -> String
Documentation
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.