Implement 5.19

This commit is contained in:
2021-03-31 21:16:22 -04:00
parent bb870cbdf1
commit ea9b0dd752
2 changed files with 56 additions and 8 deletions

View File

@@ -74,4 +74,27 @@
(display "\nex-5.19 - breakpoint\n")
(define (set-breakpoint machine label n)
((machine 'set-breakpoint) label n))
(define (cancel-breakpoint machine label n)
((machine 'cancel-breakpoint) label n))
(define (proceed machine)
(machine 'proceed))
(set-register-contents! factorial-machine 'n 6)
(set-register-contents! factorial-machine 'val 0)
(set-breakpoint factorial-machine 'fact-loop 1)
(start factorial-machine)
(assert (get-register-contents factorial-machine 'n) 6)
(proceed factorial-machine)
(assert (get-register-contents factorial-machine 'n) 5)
(proceed factorial-machine)
(cancel-breakpoint factorial-machine 'fact-loop 1)
(assert (get-register-contents factorial-machine 'n) 4)
(proceed factorial-machine)
(assert (get-register-contents factorial-machine 'val) 720)