From f93353563935ba61613d0b2a36fecae2c330d1e2 Mon Sep 17 00:00:00 2001 From: John Clements Date: Mon, 27 Aug 2012 17:58:04 -0700 Subject: [PATCH] adding external interface --- collects/stepper/private/annotate.rkt | 16 ++++++++-------- collects/stepper/private/model.rkt | 24 ++++++++++++------------ 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/collects/stepper/private/annotate.rkt b/collects/stepper/private/annotate.rkt index f98cb58e0a..ece889520d 100644 --- a/collects/stepper/private/annotate.rkt +++ b/collects/stepper/private/annotate.rkt @@ -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 diff --git a/collects/stepper/private/model.rkt b/collects/stepper/private/model.rkt index 1d09cdead2..545099b152 100644 --- a/collects/stepper/private/model.rkt +++ b/collects/stepper/private/model.rkt @@ -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.