public class FiniteAutomaton extends Object implements IAutomaton
IAutomaton.NonDeterministicOperationException, IAutomaton.StateNotInAutomatonException, IAutomaton.Triple
Constructor and Description |
---|
FiniteAutomaton() |
FiniteAutomaton(FiniteAutomaton other) |
FiniteAutomaton(String regexp)
Create a finite automaton based on a regular expression.
|
FiniteAutomaton(String regexp,
int min,
int max)
Create a finite automaton based on a regular expression.
|
Modifier and Type | Method and Description |
---|---|
ArrayList<int[]> |
_removeSymbolFromAutomaton(int alpha) |
void |
addEpsilon(int source,
int destination) |
int |
addState() |
void |
addToAlphabet(int a) |
void |
addTransition(int source,
int destination,
int... symbols) |
FiniteAutomaton |
clone() |
FiniteAutomaton |
complement() |
FiniteAutomaton |
complement(gnu.trove.set.hash.TIntHashSet alphabet) |
FiniteAutomaton |
concatenate(FiniteAutomaton otherI) |
void |
deleteTransition(int source,
int destination,
int symbol) |
int |
delta(int source,
int symbol) |
void |
delta(int source,
int symbol,
gnu.trove.set.hash.TIntHashSet states) |
void |
fill(dk.brics.automaton.Automaton a,
gnu.trove.set.hash.TIntHashSet alphabet) |
gnu.trove.set.hash.TIntHashSet |
getAlphabet() |
static char |
getCharFromInt(int i) |
gnu.trove.set.hash.TIntHashSet |
getFinalStates() |
int |
getInitialState() |
static int |
getIntFromChar(char c) |
int |
getNbStates() |
int |
getNbSymbols() |
List<int[]> |
getTransitions() |
List<int[]> |
getTransitions(int state) |
FiniteAutomaton |
intersection(IAutomaton otherI) |
boolean |
isDeterministic() |
boolean |
isFinal(int state) |
boolean |
isNotFinal(int state) |
dk.brics.automaton.Automaton |
makeBricsAutomaton() |
static int |
max(gnu.trove.set.hash.TIntHashSet hs) |
void |
minimize() |
void |
reduce() |
void |
removeDeadTransitions() |
void |
removeFromAlphabet(int a) |
void |
removeSymbolFromAutomaton(int symbol) |
IAutomaton |
repeat() |
IAutomaton |
repeat(int min) |
IAutomaton |
repeat(int min,
int max) |
boolean |
run(int[] word) |
void |
setDeterministic(boolean deterministic) |
void |
setFinal(int... states) |
void |
setFinal(int state) |
void |
setInitialState(int state) |
void |
setNonFInal(int... states) |
void |
setNonFinal(int state) |
String |
toDot() |
void |
toDotty(String f) |
String |
toString() |
FiniteAutomaton |
union(FiniteAutomaton otherI) |
public FiniteAutomaton()
public FiniteAutomaton(String regexp, int min, int max)
regexp
- the regular expressionmin
- an overall minimum value for transitionsmax
- an overall maximum value for transitionspublic FiniteAutomaton(String regexp)
regexp
- the regular expressionpublic FiniteAutomaton(FiniteAutomaton other)
public static int getIntFromChar(char c)
public static char getCharFromInt(int i)
public static int max(gnu.trove.set.hash.TIntHashSet hs)
public void fill(dk.brics.automaton.Automaton a, gnu.trove.set.hash.TIntHashSet alphabet)
public int getNbStates()
getNbStates
in interface IAutomaton
public int getNbSymbols()
public int addState()
public void removeSymbolFromAutomaton(int symbol)
public void addTransition(int source, int destination, int... symbols)
public void deleteTransition(int source, int destination, int symbol)
public int delta(int source, int symbol) throws IAutomaton.NonDeterministicOperationException
delta
in interface IAutomaton
IAutomaton.NonDeterministicOperationException
public void delta(int source, int symbol, gnu.trove.set.hash.TIntHashSet states)
delta
in interface IAutomaton
public void addToAlphabet(int a)
public void removeFromAlphabet(int a)
public int getInitialState()
getInitialState
in interface IAutomaton
public boolean isFinal(int state)
isFinal
in interface IAutomaton
public boolean isNotFinal(int state)
isNotFinal
in interface IAutomaton
public void setInitialState(int state)
public void setFinal(int state)
public void setFinal(int... states)
public void setNonFinal(int state)
public void setNonFInal(int... states)
public boolean run(int[] word)
run
in interface IAutomaton
public dk.brics.automaton.Automaton makeBricsAutomaton()
public IAutomaton repeat()
public IAutomaton repeat(int min)
public IAutomaton repeat(int min, int max)
public void minimize()
public void reduce()
public void removeDeadTransitions()
public FiniteAutomaton union(FiniteAutomaton otherI)
public FiniteAutomaton intersection(IAutomaton otherI)
public FiniteAutomaton complement(gnu.trove.set.hash.TIntHashSet alphabet)
public FiniteAutomaton complement()
public FiniteAutomaton concatenate(FiniteAutomaton otherI)
public void addEpsilon(int source, int destination)
public boolean isDeterministic()
public void setDeterministic(boolean deterministic)
public gnu.trove.set.hash.TIntHashSet getFinalStates()
public void toDotty(String f)
public String toDot()
public gnu.trove.set.hash.TIntHashSet getAlphabet()
public List<int[]> getTransitions()
getTransitions
in interface IAutomaton
public List<int[]> getTransitions(int state)
getTransitions
in interface IAutomaton
public ArrayList<int[]> _removeSymbolFromAutomaton(int alpha)
public FiniteAutomaton clone() throws CloneNotSupportedException
clone
in interface IAutomaton
clone
in class Object
CloneNotSupportedException
Copyright © 2018. All rights reserved.