adding external interface

This commit is contained in:
John Clements 2012-08-27 17:58:04 -07:00
parent fe1cc4f009
commit f933535639
2 changed files with 20 additions and 20 deletions

View File

@ -22,14 +22,14 @@
(provide/contract
[annotate
(syntax? ; syntax to annotate
(((or/c continuation-mark-set? false/c)
break-kind?)
(list?)
. ->* .
((or/c continuation-mark-set? false/c)
break-kind?
(or/c list? false/c)
. -> .
any/c) ; procedure for runtime break
boolean? ; show-lambdas-as-lambdas?
. -> .
syntax?)] ; results
syntax?)] ; result
#;[top-level-rewrite (-> syntax? syntax?)])
@ -90,10 +90,10 @@
temp))))
(define (normal-break)
(break (current-continuation-marks) 'normal-break))
(break (current-continuation-marks) 'normal-break #f))
(define (result-exp-break)
(break (current-continuation-marks) 'result-exp-break))
(break (current-continuation-marks) 'result-exp-break #f))
(define (result-value-break vals-list)
(break (current-continuation-marks) 'result-value-break vals-list))
@ -105,7 +105,7 @@
(break #f 'expr-finished-break info-list))
(define (double-break)
(break (current-continuation-marks) 'double-break))
(break (current-continuation-marks) 'double-break #f))
(define ((make-opaque-exp-break exp))
(exp-finished-break

View File

@ -207,7 +207,7 @@
(define steps-received 0)
(define break
(lambda (mark-set break-kind [returned-value-list #f])
(lambda (mark-set break-kind returned-value-list)
(when DEBUG
(printf "\n---------- BREAK TYPE = ~a ----------\n" break-kind))
@ -516,14 +516,14 @@
;; break when lifting is off.
(lambda (stx dont-care) (list stx))))
(define (step-through-expression expanded expand-next-expression)
(define show-lambdas-as-lambdas?
(define show-lambdas-as-lambdas?
(render-settings-show-lambdas-as-lambdas? render-settings))
(let* ([annotated (a:annotate expanded break
show-lambdas-as-lambdas?)])
(parameterize ([test-engine:test-silence #t])
(eval-syntax annotated))
(expand-next-expression)))
;; step through a single expanded expression.
(define (step-through-expression expanded)
(define annotated (a:annotate expanded break show-lambdas-as-lambdas?))
(parameterize ([test-engine:test-silence #t])
(eval-syntax annotated)))
(define (err-display-handler message exn)
(match held-exp-list
@ -538,15 +538,15 @@
(set! held-exp-list the-no-sexp))]))
(program-expander
(lambda ()
(lambda () ; init
(unless disable-error-handling?
(error-display-handler err-display-handler)))
(lambda (expanded continue-thunk) ; iter
(r:reset-special-values)
(if (eof-object? expanded)
(begin
(receive-result (finished-stepping)))
(step-through-expression expanded continue-thunk)))))
(receive-result (finished-stepping))
(begin (step-through-expression expanded)
(continue-thunk))))))
; no-sexp is used to indicate no sexpression for display.