public ProgramState Exec(ProgramState state) { if (exp.Eval(state) > 0) { return(thenS.Exec(state)); } if (elseS == null) { return(null); } return(elseS.Exec(state)); }
public ToyProgram OneStep() { if (this.Completed()) { throw new ProgramCompletedException("All steps executed"); } IStatement currentStatement = State.ExeStack.Pop(); ProgramState newState = currentStatement.Exec(State); if (newState != null) { return(new ToyProgram(newState)); } return(null); }