package orsetto
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=585297372d7f6cfb830214e9ef22d6d072a39b2a1591ef90f1ee2bcfe144cad3
md5=6bb6a7ba88bf2c7595a0b332921e60b4
doc/orsetto.cf/Cf_dfa/index.html
Module Cf_dfa
Functional composition of lazy deterministic finite automata.
Overview
This module implements operators for functional composition of lazy deterministic finite automata (DFA). A DFA is computationally more efficient at recognizing regular grammars than a non-deterministic finite automaton, at the cost of requiring exponentially more space for states. Lazy computation and memorization of DFA states usually requires space comparable with direct NFA elaboration, at the cost of some additional computation required when new DFA states are encountered.
Interface
module type Dispatch = sig ... end
This signature provides the abstraction necessary to represent an event dispatch, which is part of the DFA state record. It creates a dispatch for each new DFA state computed. It conceptually represents a lazily-evaluated map of events to state transitions.
module type Basis = sig ... end
This signature is a the basis for creating a DFA module.
module Aux : sig ... end
This module contains some pre-defined dispatch modules.
module type Regular = sig ... end
The signature of the core functions of the DFA engine.
module type Machine = sig ... end
module type Affix = sig ... end
The signature of additional affix operators for composing terms.
module Mk_affix
(R : Regular) :
Affix
with type event := R.event
and type term := R.term
and type 'r fin := 'r R.fin
Use Mk_affix(R)
to make the optional affix operators for R
.
module type Profile = sig ... end
The DFA signature including the affix operators.