Uses of Class
org.apache.lucene.util.automaton.Automaton
Packages that use Automaton
Package
Description
Text analysis.
Miscellaneous Tokenstreams.
Set of components for pattern-based (regex) analysis.
BlockTree terms dictionary.
BlockTree terms dictionary.
Pluggable term index / block terms dictionary implementations.
Code to maintain and access indices.
This package contains a flexible graph-based proximity query, TermAutomatonQuery, and geospatial
queries.
Code to search indices.
Analyzer based autosuggest.
Support for document suggestion
Finite-state automaton for regular expressions.
Utility classes for working with token streams as graphs.
-
Uses of Automaton in org.apache.lucene.analysis
Methods in org.apache.lucene.analysis that return AutomatonModifier and TypeMethodDescriptionTokenStreamToAutomaton.toAutomaton
(TokenStream in) Pulls the graph (includingPositionLengthAttribute
) from the providedTokenStream
, and creates the corresponding automaton where arcs are bytes (or Unicode code points if unicodeArcs = true) from each term.Methods in org.apache.lucene.analysis with parameters of type AutomatonModifier and TypeMethodDescriptionstatic TokenStream
AutomatonToTokenStream.toTokenStream
(Automaton automaton) converts an automaton into a TokenStream. -
Uses of Automaton in org.apache.lucene.analysis.miscellaneous
Methods in org.apache.lucene.analysis.miscellaneous that return AutomatonModifier and TypeMethodDescriptionprivate static Automaton
ConcatenateGraphFilter.replaceSep
(Automaton a, Character tokenSeparator) ConcatenateGraphFilter.toAutomaton()
Converts the tokenStream to an automaton, treating the transition labels as utf-8.ConcatenateGraphFilter.toAutomaton
(boolean unicodeAware) Converts the tokenStream to an automaton.Methods in org.apache.lucene.analysis.miscellaneous with parameters of type AutomatonModifier and TypeMethodDescriptionprivate static Automaton
ConcatenateGraphFilter.replaceSep
(Automaton a, Character tokenSeparator) -
Uses of Automaton in org.apache.lucene.analysis.pattern
Fields in org.apache.lucene.analysis.pattern declared as AutomatonModifier and TypeFieldDescriptionprivate final Automaton
SimplePatternSplitTokenizerFactory.dfa
private final Automaton
SimplePatternTokenizerFactory.dfa
Constructors in org.apache.lucene.analysis.pattern with parameters of type AutomatonModifierConstructorDescriptionSimplePatternSplitTokenizer
(AttributeFactory factory, Automaton dfa) Runs a pre-built automaton.Runs a pre-built automaton.SimplePatternTokenizer
(AttributeFactory factory, Automaton dfa) Runs a pre-built automaton.Runs a pre-built automaton. -
Uses of Automaton in org.apache.lucene.backward_codecs.lucene40.blocktree
Fields in org.apache.lucene.backward_codecs.lucene40.blocktree declared as AutomatonConstructors in org.apache.lucene.backward_codecs.lucene40.blocktree with parameters of type AutomatonModifierConstructorDescriptionIntersectTermsEnum
(FieldReader fr, Automaton automaton, RunAutomaton runAutomaton, BytesRef commonSuffix, BytesRef startTerm) -
Uses of Automaton in org.apache.lucene.codecs.lucene90.blocktree
Fields in org.apache.lucene.codecs.lucene90.blocktree declared as AutomatonConstructors in org.apache.lucene.codecs.lucene90.blocktree with parameters of type AutomatonModifierConstructorDescriptionIntersectTermsEnum
(FieldReader fr, Automaton automaton, RunAutomaton runAutomaton, BytesRef commonSuffix, BytesRef startTerm) -
Uses of Automaton in org.apache.lucene.codecs.uniformsplit
Fields in org.apache.lucene.codecs.uniformsplit declared as Automaton -
Uses of Automaton in org.apache.lucene.index
Fields in org.apache.lucene.index declared as AutomatonMethods in org.apache.lucene.index with parameters of type AutomatonModifier and TypeMethodDescriptionprivate static void
CheckIndex.checkTermsIntersect
(Terms terms, Automaton automaton, BytesRef startTerm) -
Uses of Automaton in org.apache.lucene.sandbox.search
Fields in org.apache.lucene.sandbox.search declared as AutomatonModifier and TypeFieldDescription(package private) final Automaton
TermAutomatonQuery.TermAutomatonWeight.automaton
(package private) Automaton
TermAutomatonQuery.det
Constructors in org.apache.lucene.sandbox.search with parameters of type AutomatonModifierConstructorDescriptionTermAutomatonWeight
(Automaton automaton, IndexSearcher searcher, IntObjectHashMap<TermStates> termStates, float boost) TermRunAutomaton
(Automaton a, int termCount) -
Uses of Automaton in org.apache.lucene.search
Fields in org.apache.lucene.search declared as AutomatonModifier and TypeFieldDescriptionprotected final Automaton
AutomatonQuery.automaton
the automaton to match index terms againstMethods in org.apache.lucene.search that return AutomatonModifier and TypeMethodDescriptionAutomatonQuery.getAutomaton()
Returns the automaton used to create this querystatic Automaton
PrefixQuery.toAutomaton
(BytesRef prefix) Build an automaton accepting all terms with the specified prefix.static Automaton
TermRangeQuery.toAutomaton
(BytesRef lowerTerm, BytesRef upperTerm, boolean includeLower, boolean includeUpper) static Automaton
WildcardQuery.toAutomaton
(Term wildcardquery) Convert Lucene wildcard syntax into an automaton.Constructors in org.apache.lucene.search with parameters of type AutomatonModifierConstructorDescriptionAutomatonQuery
(Term term, Automaton automaton) Create a new AutomatonQuery from anAutomaton
.AutomatonQuery
(Term term, Automaton automaton, int determinizeWorkLimit) Create a new AutomatonQuery from anAutomaton
.AutomatonQuery
(Term term, Automaton automaton, int determinizeWorkLimit, boolean isBinary) Create a new AutomatonQuery from anAutomaton
.AutomatonQuery
(Term term, Automaton automaton, int determinizeWorkLimit, boolean isBinary, MultiTermQuery.RewriteMethod rewriteMethod) Create a new AutomatonQuery from anAutomaton
. -
Uses of Automaton in org.apache.lucene.search.suggest.analyzing
Methods in org.apache.lucene.search.suggest.analyzing that return AutomatonModifier and TypeMethodDescriptionprotected Automaton
AnalyzingSuggester.convertAutomaton
(Automaton a) Used by subclass to change the lookup automaton, if necessary.protected Automaton
FuzzySuggester.convertAutomaton
(Automaton a) private Automaton
AnalyzingSuggester.replaceSep
(Automaton a) (package private) final Automaton
AnalyzingSuggester.toAutomaton
(BytesRef surfaceForm, TokenStreamToAutomaton ts2a) (package private) Automaton
FuzzySuggester.toLevenshteinAutomata
(Automaton automaton) (package private) final Automaton
AnalyzingSuggester.toLookupAutomaton
(CharSequence key) Methods in org.apache.lucene.search.suggest.analyzing with parameters of type AutomatonModifier and TypeMethodDescriptionprotected Automaton
AnalyzingSuggester.convertAutomaton
(Automaton a) Used by subclass to change the lookup automaton, if necessary.protected Automaton
FuzzySuggester.convertAutomaton
(Automaton a) protected List
<FSTUtil.Path<PairOutputs.Pair<Long, BytesRef>>> AnalyzingSuggester.getFullPrefixPaths
(List<FSTUtil.Path<PairOutputs.Pair<Long, BytesRef>>> prefixPaths, Automaton lookupAutomaton, FST<PairOutputs.Pair<Long, BytesRef>> fst) Returns all prefix paths to initialize the search.protected List
<FSTUtil.Path<PairOutputs.Pair<Long, BytesRef>>> FuzzySuggester.getFullPrefixPaths
(List<FSTUtil.Path<PairOutputs.Pair<Long, BytesRef>>> prefixPaths, Automaton lookupAutomaton, FST<PairOutputs.Pair<Long, BytesRef>> fst) static <T> List
<FSTUtil.Path<T>> FSTUtil.intersectPrefixPaths
(Automaton a, FST<T> fst) Enumerates all minimal prefix paths in the automaton that also intersect the FST, accumulating the FST end node and output for each path.private Automaton
AnalyzingSuggester.replaceSep
(Automaton a) (package private) Automaton
FuzzySuggester.toLevenshteinAutomata
(Automaton automaton) -
Uses of Automaton in org.apache.lucene.search.suggest.document
Fields in org.apache.lucene.search.suggest.document declared as AutomatonModifier and TypeFieldDescription(package private) final Automaton
CompletionScorer.automaton
private final Automaton
CompletionWeight.automaton
Methods in org.apache.lucene.search.suggest.document that return AutomatonModifier and TypeMethodDescriptionCompletionWeight.getAutomaton()
Returns the automaton specified by theCompletionQuery
CompletionTokenStream.toAutomaton()
Delegates to...AtCompletionTokenStream.toAutomaton
(boolean unicodeAware) Delegates to...private static Automaton
ContextQuery.toContextAutomaton
(Map<IntsRef, ContextQuery.ContextMetaData> contexts, boolean matchAllContexts) private Automaton
FuzzyCompletionQuery.toLevenshteinAutomata
(Automaton automaton, Set<IntsRef> refs) Methods in org.apache.lucene.search.suggest.document with parameters of type AutomatonModifier and TypeMethodDescriptionprivate Automaton
FuzzyCompletionQuery.toLevenshteinAutomata
(Automaton automaton, Set<IntsRef> refs) Constructors in org.apache.lucene.search.suggest.document with parameters of type AutomatonModifierConstructorDescriptionprotected
CompletionScorer
(CompletionWeight weight, NRTSuggester suggester, LeafReader reader, Bits filterDocs, boolean filtered, Automaton automaton) Creates a scorer for a field-specificsuggester
scoped byacceptDocs
CompletionWeight
(CompletionQuery query, Automaton automaton) Creates a weight forquery
with anautomaton
, using thereader
for index statsContextCompletionWeight
(CompletionQuery query, Automaton automaton, CompletionWeight innerWeight, Map<IntsRef, Float> contextMap, int[] contextLengths) FuzzyCompletionWeight
(CompletionQuery query, Automaton automaton, Set<IntsRef> refs) -
Uses of Automaton in org.apache.lucene.util.automaton
Fields in org.apache.lucene.util.automaton declared as AutomatonModifier and TypeFieldDescriptionprivate final Automaton
FiniteStringsIterator.a
Automaton to create finite string from.final Automaton
CompiledAutomaton.automaton
Two dimensional array of transitions, indexed by state number for traversal.(package private) final Automaton
RunAutomaton.automaton
private final Automaton
TooComplexToDeterminizeException.automaton
Methods in org.apache.lucene.util.automaton that return AutomatonModifier and TypeMethodDescriptionstatic Automaton
Deprecated.(package private) static Automaton
Deprecated.Build a minimal, deterministic automaton from a sorted list ofBytesRef
representing strings in UTF-8.(package private) static Automaton
DaciukMihovAutomatonBuilder.build
(BytesRefIterator input, boolean asBinary) Deprecated.Build a minimal, deterministic automaton from a sorted list ofBytesRef
representing strings in UTF-8.static Automaton
Operations.complement
(Automaton a, int determinizeWorkLimit) Returns a (deterministic) automaton that accepts the complement of the language of the given automaton.private Automaton
DaciukMihovAutomatonBuilder.completeAndConvert()
Deprecated.Called after adding all terms.static Automaton
Operations.concatenate
(List<Automaton> l) Returns an automaton that accepts the concatenation of the languages of the given automata.static Automaton
Operations.concatenate
(Automaton a1, Automaton a2) Returns an automaton that accepts the concatenation of the languages of the given automata.Converts an incoming utf32 automaton to an equivalent utf8 one.static Automaton
Operations.determinize
(Automaton a, int workLimit) Determinizes the given automaton.Automaton.Builder.finish()
Compiles all added states and transitions into a newAutomaton
and returns it.AutomatonProvider.getAutomaton
(String name) Returns automaton of the given name.TooComplexToDeterminizeException.getAutomaton()
Returns the automaton that caused this exception, if any.static Automaton
Operations.intersection
(Automaton a1, Automaton a2) Returns an automaton that accepts the intersection of the languages of the given automata.static Automaton
Automata.makeAnyBinary()
Returns a new (deterministic) automaton that accepts all binary terms.static Automaton
Automata.makeAnyChar()
Returns a new (deterministic) automaton that accepts any single codepoint.static Automaton
Automata.makeAnyString()
Returns a new (deterministic) automaton that accepts all strings.static Automaton
Automata.makeBinary
(BytesRef term) Returns a new (deterministic) automaton that accepts the single given binary term.static Automaton
Automata.makeBinaryInterval
(BytesRef min, boolean minInclusive, BytesRef max, boolean maxInclusive) Creates a new deterministic, minimal automaton accepting all binary terms in the specified interval.static Automaton
Automata.makeBinaryStringUnion
(Iterable<BytesRef> utf8Strings) Returns a new (deterministic and minimal) automaton that accepts the union of the given collection ofBytesRef
s representing UTF-8 encoded strings.static Automaton
Automata.makeBinaryStringUnion
(BytesRefIterator utf8Strings) Returns a new (deterministic and minimal) automaton that accepts the union of the given iterator ofBytesRef
s representing UTF-8 encoded strings.static Automaton
Automata.makeChar
(int c) Returns a new (deterministic) automaton that accepts a single codepoint of the given value.static Automaton
Automata.makeCharRange
(int min, int max) Returns a new (deterministic) automaton that accepts a single codepoint whose value is in the given interval (including both end points).static Automaton
Automata.makeDecimalInterval
(int min, int max, int digits) Returns a new automaton that accepts strings representing decimal (base 10) non-negative integers in the given interval.static Automaton
Automata.makeEmpty()
Returns a new (deterministic) automaton with the empty language.static Automaton
Automata.makeEmptyString()
Returns a new (deterministic) automaton that accepts only the empty string.static Automaton
Automata.makeNonEmptyBinary()
Returns a new (deterministic) automaton that accepts all binary terms except the empty string.static Automaton
Automata.makeString
(int[] word, int offset, int length) Returns a new (deterministic) automaton that accepts the single given string from the specified unicode code points.static Automaton
Automata.makeString
(String s) Returns a new (deterministic) automaton that accepts the single given string.static Automaton
Automata.makeStringUnion
(Iterable<BytesRef> utf8Strings) Returns a new (deterministic and minimal) automaton that accepts the union of the given collection ofBytesRef
s representing UTF-8 encoded strings.static Automaton
Automata.makeStringUnion
(BytesRefIterator utf8Strings) Returns a new (deterministic and minimal) automaton that accepts the union of the given iterator ofBytesRef
s representing UTF-8 encoded strings.static Automaton
Minimizes (and determinizes if not already deterministic) the given automaton using Hopcroft's algorithm.static Automaton
Returns a (deterministic) automaton that accepts the intersection of the language ofa1
and the complement of the language ofa2
.static Automaton
Returns an automaton that accepts the union of the empty string and the language of the given automaton.static Automaton
Operations.removeDeadStates
(Automaton a) Removes transitions to dead states (a state is "dead" if it is not reachable from the initial state or no accept state is reachable from it.)static Automaton
Returns an automaton that accepts the Kleene star (zero or more concatenated repetitions) of the language of the given automaton.static Automaton
Returns an automaton that acceptsmin
or more concatenated repetitions of the language of the given automaton.static Automaton
Returns an automaton that accepts betweenmin
andmax
(including both) concatenated repetitions of the language of the given automaton.static Automaton
Returns an automaton accepting the reverse language.static Automaton
Reverses the automaton, returning the new initial states.LevenshteinAutomata.toAutomaton
(int n) Compute a DFA that accepts all strings within an edit distance ofn
.LevenshteinAutomata.toAutomaton
(int n, String prefix) Compute a DFA that accepts all strings within an edit distance ofn
, matching the specified exact prefix.RegExp.toAutomaton()
Constructs newAutomaton
from thisRegExp
.RegExp.toAutomaton
(int determinizeWorkLimit) Constructs newAutomaton
from thisRegExp
.RegExp.toAutomaton
(Map<String, Automaton> automata, int determinizeWorkLimit) Constructs newAutomaton
from thisRegExp
.private Automaton
RegExp.toAutomaton
(Map<String, Automaton> automata, AutomatonProvider automaton_provider, int determinizeWorkLimit) RegExp.toAutomaton
(AutomatonProvider automaton_provider, int determinizeWorkLimit) Constructs newAutomaton
from thisRegExp
.private Automaton
RegExp.toAutomatonInternal
(Map<String, Automaton> automata, AutomatonProvider automaton_provider, int determinizeWorkLimit) private Automaton
RegExp.toCaseInsensitiveChar
(int codepoint, int determinizeWorkLimit) private Automaton
RegExp.toCaseInsensitiveString
(int determinizeWorkLimit) (package private) static Automaton
Returns a new automaton accepting the same language with added transitions to a dead state so that from every state and every label there is a transition.static Automaton
Operations.union
(Collection<Automaton> l) Returns an automaton that accepts the union of the languages of the given automata.static Automaton
Returns an automaton that accepts the union of the languages of the given automata.Methods in org.apache.lucene.util.automaton with parameters of type AutomatonModifier and TypeMethodDescriptionstatic int
Automata.appendAnyChar
(Automaton a, int state) Accept any single character starting from the specified state, returning the new statestatic int
Automata.appendChar
(Automaton a, int state, int c) Appends the specified character to the specified state, returning a new state.static Automaton
Operations.complement
(Automaton a, int determinizeWorkLimit) Returns a (deterministic) automaton that accepts the complement of the language of the given automaton.static Automaton
Operations.concatenate
(Automaton a1, Automaton a2) Returns an automaton that accepts the concatenation of the languages of the given automata.Converts an incoming utf32 automaton to an equivalent utf8 one.void
Copies over all states/transitions from other.void
Copies over all states/transitions from other.void
Automaton.Builder.copyStates
(Automaton other) Copies over all states from other.static Automaton
Operations.determinize
(Automaton a, int workLimit) Determinizes the given automaton.private static int
CompiledAutomaton.findSinkState
(Automaton automaton) Returns sink state, if present, else -1.static String
Operations.getCommonPrefix
(Automaton a) Returns the longest string that is a prefix of all accepted strings and visits each state at most once.static BytesRef
Operations.getCommonPrefixBytesRef
(Automaton a) Returns the longest BytesRef that is a prefix of all accepted strings and visits each state at most once.static BytesRef
Operations.getCommonSuffixBytesRef
(Automaton a) Returns the longest BytesRef that is a suffix of all accepted strings.private static BitSet
Operations.getLiveStates
(Automaton a) Returns the set of live states.private static BitSet
Operations.getLiveStatesFromInitial
(Automaton a) Returns bitset marking states reachable from the initial state.private static BitSet
Operations.getLiveStatesToAccept
(Automaton a) Returns bitset marking states that can reach an accept state.static IntsRef
Operations.getSingleton
(Automaton a) If this automaton accepts a single input, return it.static boolean
Operations.hasDeadStates
(Automaton a) Returns true if this automaton has any states that cannot be reached from the initial state or cannot reach an accept state.static boolean
Operations.hasDeadStatesFromInitial
(Automaton a) Returns true if there are dead states reachable from an initial state.static boolean
Operations.hasDeadStatesToAccept
(Automaton a) Returns true if there are dead states that reach an accept state.static Automaton
Operations.intersection
(Automaton a1, Automaton a2) Returns an automaton that accepts the intersection of the languages of the given automata.static boolean
Returns true if the given automaton accepts no strings.static boolean
Returns true if the language of this automaton is finite.private static boolean
Operations.isFinite
(Transition scratch, Automaton a, int state, BitSet path, BitSet visited, int level) Checks whether there is a loop containing state.static boolean
Returns true if the given automaton accepts all strings.static boolean
Returns true if the given automaton accepts all strings for the specified min/max range of the alphabet.static Automaton
Minimizes (and determinizes if not already deterministic) the given automaton using Hopcroft's algorithm.static Automaton
Returns a (deterministic) automaton that accepts the intersection of the language ofa1
and the complement of the language ofa2
.int
Returns next label of current transition, or advances to next transition and returns its first label, if current one is exhausted.static Automaton
Returns an automaton that accepts the union of the empty string and the language of the given automaton.static Automaton
Operations.removeDeadStates
(Automaton a) Removes transitions to dead states (a state is "dead" if it is not reachable from the initial state or no accept state is reachable from it.)static Automaton
Returns an automaton that accepts the Kleene star (zero or more concatenated repetitions) of the language of the given automaton.static Automaton
Returns an automaton that acceptsmin
or more concatenated repetitions of the language of the given automaton.static Automaton
Returns an automaton that accepts betweenmin
andmax
(including both) concatenated repetitions of the language of the given automaton.void
FiniteStringsIterator.PathNode.resetState
(Automaton a, int state) static Automaton
Returns an automaton accepting the reverse language.static Automaton
Reverses the automaton, returning the new initial states.static boolean
Returns true if the given string is accepted by the automaton.static boolean
Returns true if the given string (expressed as unicode codepoints) is accepted by the automaton.static boolean
Operations.sameLanguage
(Automaton a1, Automaton a2) Returns true if these two automata accept exactly the same language.static boolean
Returns true if the language ofa1
is a subset of the language ofa2
.static int[]
Operations.topoSortStates
(Automaton a) Returns the topological sort of all states reachable from the initial state.private static int
Operations.topoSortStates
(Automaton a, int[] states) Performs a topological sort on the states of the given Automaton.private static IntHashSet
(package private) static Automaton
Returns a new automaton accepting the same language with added transitions to a dead state so that from every state and every label there is a transition.static Automaton
Returns an automaton that accepts the union of the languages of the given automata.Method parameters in org.apache.lucene.util.automaton with type arguments of type AutomatonModifier and TypeMethodDescriptionstatic Automaton
Operations.concatenate
(List<Automaton> l) Returns an automaton that accepts the concatenation of the languages of the given automata.private void
RegExp.findLeaves
(RegExp exp, RegExp.Kind kind, List<Automaton> list, Map<String, Automaton> automata, AutomatonProvider automaton_provider, int determinizeWorkLimit) private void
RegExp.findLeaves
(RegExp exp, RegExp.Kind kind, List<Automaton> list, Map<String, Automaton> automata, AutomatonProvider automaton_provider, int determinizeWorkLimit) RegExp.toAutomaton
(Map<String, Automaton> automata, int determinizeWorkLimit) Constructs newAutomaton
from thisRegExp
.private Automaton
RegExp.toAutomaton
(Map<String, Automaton> automata, AutomatonProvider automaton_provider, int determinizeWorkLimit) private Automaton
RegExp.toAutomatonInternal
(Map<String, Automaton> automata, AutomatonProvider automaton_provider, int determinizeWorkLimit) static Automaton
Operations.union
(Collection<Automaton> l) Returns an automaton that accepts the union of the languages of the given automata.Constructors in org.apache.lucene.util.automaton with parameters of type AutomatonModifierConstructorDescriptionConverts incoming automaton to byte-based (UTF32ToUTF8) firstByteRunAutomaton
(Automaton a, boolean isBinary, int determinizeWorkLimit) expert: if isBinary is true, the input is already byte-basedConstruct with a default number of determinizeWorkLimit.CharacterRunAutomaton
(Automaton a, int determinizeWorkLimit) Constructor specifying determinizeWorkLimit.CompiledAutomaton
(Automaton automaton) Create this, passing simplify=true and finite=null, so that we try to simplify the automaton and determine if it is finite.CompiledAutomaton
(Automaton automaton, Boolean finite, boolean simplify) Create this.CompiledAutomaton
(Automaton automaton, Boolean finite, boolean simplify, int determinizeWorkLimit, boolean isBinary) Create this.Constructor.FiniteStringsIterator
(Automaton a, int startState, int endState) Constructor.LimitedFiniteStringsIterator
(Automaton a, int limit) Constructor.protected
RunAutomaton
(Automaton a, int alphabetSize) Constructs a newRunAutomaton
from a deterministicAutomaton
.protected
RunAutomaton
(Automaton a, int alphabetSize, int determinizeWorkLimit) Constructs a newRunAutomaton
from a deterministicAutomaton
.TooComplexToDeterminizeException
(Automaton automaton, int determinizeWorkLimit) Use this constructor when the automaton failed to determinize. -
Uses of Automaton in org.apache.lucene.util.graph
Fields in org.apache.lucene.util.graph declared as AutomatonMethods in org.apache.lucene.util.graph that return AutomatonModifier and TypeMethodDescriptionprivate Automaton
GraphTokenStreamFiniteStrings.build
(TokenStream in) Build an automaton from the providedTokenStream
.Methods in org.apache.lucene.util.graph with parameters of type AutomatonModifier and TypeMethodDescriptionprivate static void
GraphTokenStreamFiniteStrings.articulationPointsRecurse
(Automaton a, int state, int d, int[] depth, int[] low, int[] parent, BitSet visited, IntArrayList points)
Automata.makeStringUnion(Iterable)
instead