RegEqnsFm
functor (preliminary)
functor RegEqnsFm
( ... ) : sig ... end
This functor combines a structure for regular equation systems with a structure for finite machines. Currently it only extends structure RegExpFm by fmToEqns. (Likely to have normalization functions for equation systems added, like GNF, LeftToRightRecursion, etc.)
structure E : REGEQNS
structure M : FM
structure E : REGEQNS
structure M : FM
structure E : REGEQNS
structure M : FM
type ''a machine = ''a M.machine
datatype re = datatype E.re
val accept : ''a machine -> ''a list -> bool
val retofm : ''a re -> ''a machine
val retominfm : ''a re -> ''a machine
val fmtore : ''a machine -> ''a re
val fmToEqns : ''a machine -> ''a re E.eqns
type ''a machine = ''a M.machine
datatype re = datatype E.re
accept m l
retofm r
retominfm r
fmtore m
fmToEqns m
This functor is used to construct in the same way both the structures RegEqnsFm and ppRegEqnsFm.
Regular recursion equation system should be translated to recursive finite automata, and these could be defined either via regular expressions extended by a simultaneous or a simple-fixed-point operator. Then right-linear recursion systems would translate to finite automata via tail-recursion elimination.