equal
deleted
inserted
replaced
617 (* nested commands *) |
617 (* nested commands *) |
618 |
618 |
619 fun command tr st = |
619 fun command tr st = |
620 (case transition (! interact) tr st of |
620 (case transition (! interact) tr st of |
621 SOME (st', NONE) => st' |
621 SOME (st', NONE) => st' |
622 | SOME (_, SOME exn_info) => raise Runtime.EXCURSION_FAIL exn_info |
622 | SOME (_, SOME (exn, info)) => |
|
623 if Exn.is_interrupt exn then reraise exn else raise Runtime.EXCURSION_FAIL (exn, info) |
623 | NONE => raise Runtime.EXCURSION_FAIL (Runtime.TERMINATE, at_command tr)); |
624 | NONE => raise Runtime.EXCURSION_FAIL (Runtime.TERMINATE, at_command tr)); |
624 |
625 |
625 fun command_result tr st = |
626 fun command_result tr st = |
626 let val st' = command tr st |
627 let val st' = command tr st |
627 in (st', st') end; |
628 in (st', st') end; |