Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class State {
- private boolean endState;
- private HashMap<String, String> paths;
- private String name;
- public State(String name) {
- paths = new HashMap<String, String>();
- this.name = name;
- if (name.startsWith("F"))
- endState = true;
- else
- endState = false;
- }
- public void newPath(String[] stateCode) {
- paths.put(stateCode[1], stateCode[2]);
- }
- public boolean isPath(String input) {
- return paths.containsKey(input);
- }
- public boolean isEndState() {
- return endState;
- }
- public String getName() {
- return name;
- }
- public String pathResult(String input) {
- return paths.get(input);
- }
- }
- public class StateMachine {
- HashMap<String, State> map;
- State activeState;
- boolean failed;
- StateMachine(HashMap<String, State> map) {
- this.map = map;
- activeState = map.get("S");
- failed = false;
- }
- public void input(String input) {
- if (activeState.isPath(input))
- activeState = map.get(activeState.pathResult(input));
- else
- failed = true;
- }
- public boolean accepted() {
- return !failed;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement