|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectdk.brics.automaton.Automaton
public class Automaton
Finite-state automaton with regular expression operations.
Class invariants:
State and Transition objects)
or with a singleton string (see getSingleton() and expandSingleton()) in case the automaton is known to accept exactly one string.
(Implicitly, all states and transitions of an automaton are reachable from its initial state.)
reduce())
and have no transitions to dead states (see removeDeadTransitions()).
isDeterministic() returns false (but
the converse is not required).
If the states or transitions are manipulated manually, the restoreInvariant()
and setDeterministic(boolean) methods should be used afterwards to restore
representation invariants that are assumed by the built-in automata operations.
| Field Summary | |
|---|---|
static int |
MINIMIZE_BRZOZOWSKI
Minimize using Brzozowski's O(2n) algorithm. |
static int |
MINIMIZE_HOPCROFT
Minimize using Hopcroft's O(n log n) algorithm. |
static int |
MINIMIZE_HUFFMAN
Minimize using Huffman's O(n2) algorithm. |
| Constructor Summary | |
|---|---|
Automaton()
Constructs a new automaton that accepts the empty language. |
|
| Methods inherited from class java.lang.Object |
|---|
finalize, getClass, notify, notifyAll, wait, wait, wait |
| Field Detail |
|---|
public static final int MINIMIZE_HUFFMAN
setMinimization(int),
Constant Field Valuespublic static final int MINIMIZE_BRZOZOWSKI
setMinimization(int),
Constant Field Valuespublic static final int MINIMIZE_HOPCROFT
setMinimization(int),
Constant Field Values| Constructor Detail |
|---|
public Automaton()
State and Transition objects.
setInitialState(State),
State,
Transition| Method Detail |
|---|
public static void setMinimization(int algorithm)
MINIMIZE_HOPCROFT).
algorithm - minimization algorithmpublic static void setMinimizeAlways(boolean flag)
minimize() will automatically
be invoked after all operations that otherwise may produce non-minimal automata.
By default, the flag is not set.
flag - if true, the flag is setpublic static boolean setAllowMutate(boolean flag)
flag - if true, the flag is set
public java.lang.String getSingleton()
public void setInitialState(State s)
s - statepublic State getInitialState()
public boolean isDeterministic()
public void setDeterministic(boolean deterministic)
deterministic - true if the automaton is definitely deterministic, false if the automaton
may be nondeterministicpublic void setInfo(java.lang.Object info)
info - extra informationpublic java.lang.Object getInfo()
setInfo(Object)public java.util.Set<State> getStates()
State objectspublic java.util.Set<State> getAcceptStates()
State objectspublic void restoreInvariant()
setDeterministic(boolean)public void reduce()
public java.util.Set<State> getLiveStates()
State objectspublic void removeDeadTransitions()
reduce() and clearHashCode().
(A state is "dead" if no accept state is reachable from it.)
public void expandSingleton()
public int getNumberOfStates()
public int getNumberOfTransitions()
public boolean equals(java.lang.Object obj)
hashCode and
subsetOf.
equals in class java.lang.Objectpublic int hashCode()
hashCode in class java.lang.Objectpublic java.lang.String toString()
toString in class java.lang.Objectpublic java.lang.String toDot()
public Automaton clone()
clone in class java.lang.Object
public static Automaton load(java.net.URL url)
throws java.io.IOException,
java.io.OptionalDataException,
java.lang.ClassCastException,
java.lang.ClassNotFoundException,
java.io.InvalidClassException
Automaton located by a URL.
url - URL of serialized automaton
java.io.IOException - if input/output related exception occurs
java.io.OptionalDataException - if the data is not a serialized object
java.io.InvalidClassException - if the class serial number does not match
java.lang.ClassCastException - if the data is not a serialized Automaton
java.lang.ClassNotFoundException - if the class of the serialized object cannot be found
public static Automaton load(java.io.InputStream stream)
throws java.io.IOException,
java.io.OptionalDataException,
java.lang.ClassCastException,
java.lang.ClassNotFoundException,
java.io.InvalidClassException
Automaton from a stream.
stream - input stream with serialized automaton
java.io.IOException - if input/output related exception occurs
java.io.OptionalDataException - if the data is not a serialized object
java.io.InvalidClassException - if the class serial number does not match
java.lang.ClassCastException - if the data is not a serialized Automaton
java.lang.ClassNotFoundException - if the class of the serialized object cannot be found
public void store(java.io.OutputStream stream)
throws java.io.IOException
Automaton to the given stream.
stream - output stream for serialized automaton
java.io.IOException - if input/output related exception occurspublic static Automaton makeEmpty()
BasicAutomata.makeEmpty().
public static Automaton makeEmptyString()
BasicAutomata.makeEmptyString().
public static Automaton makeAnyString()
BasicAutomata.makeAnyString().
public static Automaton makeAnyChar()
BasicAutomata.makeAnyChar().
public static Automaton makeChar(char c)
BasicAutomata.makeChar(char).
public static Automaton makeCharRange(char min,
char max)
BasicAutomata.makeCharRange(char, char).
public static Automaton makeCharSet(java.lang.String set)
BasicAutomata.makeCharSet(String).
public static Automaton makeInterval(int min,
int max,
int digits)
throws java.lang.IllegalArgumentException
BasicAutomata.makeInterval(int, int, int).
java.lang.IllegalArgumentExceptionpublic static Automaton makeString(java.lang.String s)
BasicAutomata.makeString(String).
public static Automaton makeStringUnion(java.lang.CharSequence... strings)
BasicAutomata.makeStringUnion(CharSequence...).
public static Automaton makeMaxInteger(java.lang.String n)
BasicAutomata.makeMaxInteger(String).
public static Automaton makeMinInteger(java.lang.String n)
BasicAutomata.makeMinInteger(String).
public static Automaton makeTotalDigits(int i)
BasicAutomata.makeTotalDigits(int).
public static Automaton makeFractionDigits(int i)
BasicAutomata.makeFractionDigits(int).
public static Automaton makeIntegerValue(java.lang.String value)
BasicAutomata.makeIntegerValue(String).
public static Automaton makeDecimalValue(java.lang.String value)
BasicAutomata.makeDecimalValue(String).
public static Automaton makeStringMatcher(java.lang.String s)
BasicAutomata.makeStringMatcher(String).
public Automaton concatenate(Automaton a)
BasicOperations.concatenate(Automaton, Automaton).
public static Automaton concatenate(java.util.List<Automaton> l)
BasicOperations.concatenate(List).
public Automaton optional()
BasicOperations.optional(Automaton).
public Automaton repeat()
BasicOperations.repeat(Automaton).
public Automaton repeat(int min)
BasicOperations.repeat(Automaton, int).
public Automaton repeat(int min,
int max)
BasicOperations.repeat(Automaton, int, int).
public Automaton complement()
BasicOperations.complement(Automaton).
public Automaton minus(Automaton a)
BasicOperations.minus(Automaton, Automaton).
public Automaton intersection(Automaton a)
BasicOperations.intersection(Automaton, Automaton).
public boolean subsetOf(Automaton a)
BasicOperations.subsetOf(Automaton, Automaton).
public Automaton union(Automaton a)
BasicOperations.union(Automaton, Automaton).
public static Automaton union(java.util.Collection<Automaton> l)
BasicOperations.union(Collection).
public void determinize()
BasicOperations.determinize(Automaton).
public void addEpsilons(java.util.Collection<StatePair> pairs)
BasicOperations.addEpsilons(Automaton, Collection).
public boolean isEmptyString()
BasicOperations.isEmptyString(Automaton).
public boolean isEmpty()
BasicOperations.isEmpty(Automaton).
public boolean isTotal()
BasicOperations.isTotal(Automaton).
public java.lang.String getShortestExample(boolean accepted)
BasicOperations.getShortestExample(Automaton, boolean).
public boolean run(java.lang.String s)
BasicOperations.run(Automaton, String).
public void minimize()
MinimizationOperations.minimize(Automaton).
public static Automaton minimize(Automaton a)
MinimizationOperations.minimize(Automaton).
Returns the automaton being given as argument.
public Automaton overlap(Automaton a)
SpecialOperations.overlap(Automaton, Automaton).
public Automaton singleChars()
SpecialOperations.singleChars(Automaton).
public Automaton trim(java.lang.String set,
char c)
SpecialOperations.trim(Automaton, String, char).
public Automaton compress(java.lang.String set,
char c)
SpecialOperations.compress(Automaton, String, char).
public Automaton subst(java.util.Map<java.lang.Character,java.util.Set<java.lang.Character>> map)
SpecialOperations.subst(Automaton, Map).
public Automaton subst(char c,
java.lang.String s)
SpecialOperations.subst(Automaton, char, String).
public Automaton homomorph(char[] source,
char[] dest)
SpecialOperations.homomorph(Automaton, char[], char[]).
public Automaton projectChars(java.util.Set<java.lang.Character> chars)
SpecialOperations.projectChars(Automaton, Set).
public boolean isFinite()
SpecialOperations.isFinite(Automaton).
public java.util.Set<java.lang.String> getStrings(int length)
SpecialOperations.getStrings(Automaton, int).
public java.util.Set<java.lang.String> getFiniteStrings()
SpecialOperations.getFiniteStrings(Automaton).
public java.util.Set<java.lang.String> getFiniteStrings(int limit)
SpecialOperations.getFiniteStrings(Automaton, int).
public java.lang.String getCommonPrefix()
SpecialOperations.getCommonPrefix(Automaton).
public void prefixClose()
SpecialOperations.prefixClose(Automaton).
public static Automaton hexCases(Automaton a)
SpecialOperations.hexCases(Automaton).
public static Automaton replaceWhitespace(Automaton a)
SpecialOperations.replaceWhitespace(Automaton).
public static java.lang.String shuffleSubsetOf(java.util.Collection<Automaton> ca,
Automaton a,
java.lang.Character suspend_shuffle,
java.lang.Character resume_shuffle)
ShuffleOperations.shuffleSubsetOf(Collection, Automaton, Character, Character).
public Automaton shuffle(Automaton a)
ShuffleOperations.shuffle(Automaton, Automaton).
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||