(* compute next state *)
CASE ch OF
| "A":
CASE state OF
| s0to0: state := s15to0;
| s0to15: state := s15to15;
| s0to30: state := s15to30;
| s0to40: state := s15to40;
| s15to0: state := s30to0;
| s15to15: state := s30to15;
| s15to30: state := s30to30;
| s15to40: state := s30to40;
| s30to0: state := s40to0;
| s30to15: state := s40to15;
| s30to30: state := s40to30;
| s30to40: state := deuce;
| s40to0: state := gameA;
| s40to15: state := gameA;
| s40to30: state := gameA;
| deuce: state := advantageA;
| advantageA: state := gameA;
| advantageB: state := deuce;
END;
| "B": (* ... *)
| 0X: (* no input available *)
EXIT
END;
|