IAutomaton
- Namespace
- Rowles.LeanCorpus.Codecs.Fst
- Assembly
- Rowles.LeanCorpus.dll
Interface for deterministic finite automata used with term dictionary intersection. States are represented as integers. State -1 is the dead/reject state.
public interface IAutomaton
Start
Initial state of the automaton.
CanMatch(int)
Returns true if the automaton could potentially accept any string starting from the given state. Used for early pruning during intersection. Returns false only if the state is dead (no path to any accept state).
IsAccept(int)
Returns true if the given state is an accepting state.
IsSink(int)
Returns true if the given state accepts every possible byte sequence (i.e. all 256 transitions lead to an accept state or a self-sink). Used by the FST reader to skip automaton calls and switch to a simple output-collection traversal when the automaton is fully permissive.
Step(int, byte)
Transition function: returns next state given current state and input byte, or -1 if no transition.