public class StateStructure{ String currentState; String input; String stateToTransfer; String edit; String LRaction; public StateStructure() { currentState = ""; input = ""; LRaction = ""; stateToTransfer = ""; edit = ""; } public StateStructure(String Source) { // String temp; int tempindex,lastindex = -1; for(int i = 0;i<4;i++) { tempindex = Source.indexOf(",",lastindex+1); if(i==0) currentState = Source.substring(lastindex+1, tempindex); if(i==1) input = Source.substring(lastindex+1, tempindex); if(i==2) stateToTransfer = Source.substring(lastindex+1, tempindex); if(i==3) edit = Source.substring(lastindex+1, tempindex); lastindex = tempindex; } LRaction = Source.substring(lastindex+1, Source.length()); } public boolean matchState(String input, String state) { if((this.input.equalsIgnoreCase(input))&&(this.currentState.equalsIgnoreCase(state))) { return true; } else return false; } public boolean NextState(String Language, int CurrentIndex, String state) { if(!this.matchState(Language.substring(CurrentIndex, CurrentIndex+1), state)) return false; state = this.stateToTransfer; String temp = Language.substring(0, CurrentIndex)+this.edit+Language.substring(CurrentIndex+1, Language.length()); Language = temp; if(this.LRaction=="L") CurrentIndex--; else CurrentIndex++; return true; } }