Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.List;
- public class Automaton {
- private List<States> state;
- private List<Character> alphabet;
- private States initialState;
- private List<States> finalStates;
- public Automaton(){
- alphabet.add(':');
- alphabet.add(';');
- alphabet.add('-');
- alphabet.add('=');
- alphabet.add('(');
- alphabet.add(')');
- }
- public String addState(States newState){
- if(state.contains(newState)){
- return "State already added";
- }else{
- state.add(newState);
- return "State successfully added";
- }
- }
- public void addTransition(States st, Character act, States nextState){
- st.addTransition(act,nextState);
- }
- public void setInitialState(States iState){
- initialState = iState;
- }
- public States getInitialState(){
- return initialState;
- }
- public void addFinalState(States fStates){
- finalStates.add(fStates);
- }
- public boolean accept(String param){
- Character carCourant;
- States etatC = initialState;
- States etatTmp;
- int i = 0;
- while(!(finalStates.contains(etatC) && i < param.length())){
- carCourant = param.charAt(i);
- if(alphabet.contains(carCourant)){
- etatTmp = etatC.getTransition(carCourant);
- if(etatTmp == null){
- return false;
- }
- etatC = etatTmp;
- }
- i++;
- }
- return true;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement