I
- input symbol classpublic class IncrementalDFATreeBuilder<I> extends AbstractIncrementalDFABuilder<I>
insert(Word, boolean)
, either
the set of words definitely in the target language or definitely not in the target language is augmented. The
lookup(Word)
method then returns, for a given word, whether this word is in the set of definitely accepted
words (Acceptance.TRUE
), definitely rejected words (Acceptance.FALSE
), or neither (Acceptance.DONT_KNOW
).Modifier and Type | Class and Description |
---|---|
class |
IncrementalDFATreeBuilder.GraphView |
protected static class |
IncrementalDFATreeBuilder.Record<S,I> |
class |
IncrementalDFATreeBuilder.TransitionSystemView |
AbstractIncrementalDFABuilder.AbstractGraphView<I,N,E>, AbstractIncrementalDFABuilder.AbstractTransitionSystemView<S,I,T>
Modifier and Type | Field and Description |
---|---|
protected Node<I> |
root |
alphabetSize, inputAlphabet
Constructor and Description |
---|
IncrementalDFATreeBuilder(Alphabet<I> inputAlphabet) |
Modifier and Type | Method and Description |
---|---|
void |
addAlphabetSymbol(I symbol)
Notifies the data structure that a new symbol should be added to the alphabet.
|
IncrementalDFATreeBuilder.GraphView |
asGraph()
Retrieves a graph view of the current state of the construction.
|
IncrementalDFATreeBuilder.TransitionSystemView |
asTransitionSystem()
Retrieves a transition system view of the current state of the construction.
|
protected <S> @Nullable Word<I> |
doFindSeparatingWord(DFA<S,I> target,
Collection<? extends I> inputs,
boolean omitUndefined) |
@Nullable Word<I> |
findSeparatingWord(DFA<?,I> target,
Collection<? extends I> inputs,
boolean omitUndefined)
Checks the current state of the construction against a given target model, and returns a word exposing a
difference if there is one.
|
void |
insert(Word<? extends I> word,
boolean acceptance)
Inserts a new word into the automaton, with a given acceptance value.
|
Acceptance |
lookup(Word<? extends I> inputWord)
Looks up the tri-state acceptance value for a given word.
|
getInputAlphabet, hasDefinitiveInformation, insert
public void addAlphabetSymbol(I symbol)
SupportsGrowingAlphabet
GrowingAlphabet
) to handle
potentially shared state across multiple instances. If the needed requirements are not met, a GrowingAlphabetNotSupportedException
can be thrown.symbol
- the symbol to add to the alphabet.public @Nullable Word<I> findSeparatingWord(DFA<?,I> target, Collection<? extends I> inputs, boolean omitUndefined)
IncrementalConstruction
target
- the target automaton modelinputs
- the set of input symbols to consideromitUndefined
- if this is set to true
, then undefined transitions in the target
model will be
interpreted as "unspecified/don't know" and omitted in the equivalence test. Otherwise, they will be
interpreted in the usual manner (e.g., non-accepting sink in case of DFAs).null
if no difference could be found.protected <S> @Nullable Word<I> doFindSeparatingWord(DFA<S,I> target, Collection<? extends I> inputs, boolean omitUndefined)
public Acceptance lookup(Word<? extends I> inputWord)
IncrementalDFABuilder
inputWord
- the wordpublic void insert(Word<? extends I> word, boolean acceptance)
IncrementalDFABuilder
word
- the word to insertacceptance
- whether or not this word should be marked as acceptingpublic IncrementalDFATreeBuilder.GraphView asGraph()
IncrementalConstruction
public IncrementalDFATreeBuilder.TransitionSystemView asTransitionSystem()
IncrementalConstruction
Copyright © 2020. All rights reserved.