Advertisement
Guest User

Tanguy

a guest
Nov 20th, 2019
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.58 KB | None | 0 0
  1. import java.util.List;
  2.  
  3. public class Automaton {
  4.  
  5. private List<States> state;
  6. private List<Character> alphabet;
  7. private States initialState;
  8. private List<States> finalStates;
  9.  
  10. public Automaton(){
  11. alphabet.add(':');
  12. alphabet.add(';');
  13. alphabet.add('-');
  14. alphabet.add('=');
  15. alphabet.add('(');
  16. alphabet.add(')');
  17. }
  18.  
  19. public String addState(States newState){
  20. if(state.contains(newState)){
  21. return "State already added";
  22. }else{
  23. state.add(newState);
  24. return "State successfully added";
  25. }
  26. }
  27.  
  28. public void addTransition(States st, Character act, States nextState){
  29. st.addTransition(act,nextState);
  30. }
  31.  
  32. public void setInitialState(States iState){
  33. initialState = iState;
  34. }
  35.  
  36. public States getInitialState(){
  37. return initialState;
  38. }
  39.  
  40. public void addFinalState(States fStates){
  41. finalStates.add(fStates);
  42. }
  43.  
  44. public boolean accept(String param){
  45. Character carCourant;
  46. States etatC = initialState;
  47. States etatTmp;
  48. int i = 0;
  49. while(!(finalStates.contains(etatC) && i < param.length())){
  50. carCourant = param.charAt(i);
  51. if(alphabet.contains(carCourant)){
  52. etatTmp = etatC.getTransition(carCourant);
  53. if(etatTmp == null){
  54. return false;
  55. }
  56. etatC = etatTmp;
  57. }
  58. i++;
  59. }
  60. return true;
  61. }
  62.  
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement