# Package org.apache.lucene.util.automaton

Finite-state automaton for regular expressions.

This package contains a full DFA/NFA implementation with Unicode alphabet and support for all standard (and a number of non-standard) regular expression operations.

The most commonly used functionality is located in the classes ``Automaton`` and ``RegExp``.

For more information, go to the package home page at `http://www.brics.dk/automaton/`.

WARNING: This API is experimental and might change in incompatible ways in the next release.

- Interface Summary
  Interface | Description
  --- | ---
  AutomatonProvider | Automaton provider for `RegExp.` `RegExp.toAutomaton(AutomatonProvider,int)`

- Class Summary
  Class | Description
  --- | ---
  Automata | Construction of basic automata.
  Automaton | Represents an automaton and all its states and transitions.
  Automaton.Builder | Records new states and transitions and then `Automaton.Builder.finish()` creates the `Automaton`.
  ByteRunAutomaton | Automaton representation for matching UTF-8 byte[].
  CharacterRunAutomaton | Automaton representation for matching char[].
  CompiledAutomaton | Immutable class holding compiled details for a given Automaton.
  DaciukMihovAutomatonBuilder | Deprecated. Visibility of this class will be reduced in a future release.
  FiniteStringsIterator | Iterates all accepted strings.
  LevenshteinAutomata | Class to construct DFAs that match a word within some edit distance.
  LimitedFiniteStringsIterator | `FiniteStringsIterator` which limits the number of iterated accepted strings.
  MinimizationOperations | Operations for minimizing automata.
  Operations | Automata operations.
  RegExp | Regular Expression extension to `Automaton`.
  RunAutomaton | Finite-state automaton with fast run operation.
  StatePair | Pair of states.
  Transition | Holds one transition from an `Automaton`.
  UTF32ToUTF8 | Converts UTF-32 automata to the equivalent UTF-8 representation.

- Enum Summary
  Enum | Description
  --- | ---
  CompiledAutomaton.AUTOMATON_TYPE | Automata are compiled into different internal forms for the most efficient execution depending upon the language they accept.
  RegExp.Kind | The type of expression represented by a RegExp node.

- Exception Summary
  Exception | Description
  --- | ---
  TooComplexToDeterminizeException | This exception is thrown when determinizing an automaton would require too much work.