Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Builder ¶
type Builder struct {
// contains filtered or unexported fields
}
func (*Builder) Add ¶
Add adds a key-value pair to the builder. The resulting automaton then associates key wf with value v.
func (*Builder) AddToAlphabet ¶
AddToAlphabet adds all characters (bytes) in str to the builder's internal alphabet.
All characters of keys added to the builder must be added to the alphabet before being added to the builder. The zero character \0 has special meaning and cannot be added to the builder's alphabet.
func (*Builder) Statistics ¶
func (b *Builder) Statistics() Statistics
Statistics returns a Statistics struct.
type DFANode ¶
type DFANode interface { Final() string // Return the empty string to denote non-final nodes. Target(c byte) DFANode // Target for the given transition }
Node represents a state in a DFA. They can be used to construct an FSA instance.
Final states should return a non-empty string in their implementation of the Final() method. If a node has no target transition, nil should be returned.
func Determinize ¶
func Determinize(initial NDFANode, b DFANodeBuilder) DFANode
Determinize determinizes a non-deterministic FSA.
type DFANodeBuilder ¶
type DFANodeBuilder interface { NewNode(string) DFANode // Return a new DFANode instance. LinkNodes(DFANode, byte, DFANode) // Link the two nodes together with a specific byte. }
DFANodeBuilder is used to build and link DFANodes by fsa.Determinize.
type FSA ¶
type FSA struct {
// contains filtered or unexported fields
}
func NewFSAFromNodes ¶
NewFSAFromNodes creates a new fsa from the given initial state. The function panics if the nodes do not represent a dfa.
func (*FSA) Delta ¶
Delta executes a transition from s using c and returns the target state. If no transition can be executed, 0 is returned.
type NDFANode ¶
type NDFANode interface { Final() string // Holds a non-empty string for final nodes. Targets(c byte) []NDFANode // Targets for the given transitions. ID() uint64 // The unique id for the node. }
Node represents a state in a NDFA. They can be used to construct an deterministic automaton and from there be converted into a FSA instance.
Final states should return a non-empty string in their implementation of the Final() method. If a node has no target transition, nil should be returned.