commit dd90b92c3d45c9f7671c4a9c2442ab959d492183
parent 6641e1fe7a113711f6fc207bb75a6384016209b2
Author: Ryan Culpepper <ryanc@racket-lang.org>
Date: Tue, 30 Jan 2007 22:32:21 +0000
Macro stepper: internal debugging improvements
svn: r5511
original commit: d76d947d9396347d8c0029b3235950a772986511
Diffstat:
2 files changed, 22 insertions(+), 20 deletions(-)
diff --git a/collects/macro-debugger/model/deriv-tokens.ss b/collects/macro-debugger/model/deriv-tokens.ss
@@ -83,7 +83,6 @@
(12 . ,token-block->list)
(13 . ,token-next-group)
(14 . ,token-block->letrec)
- #;(15 . renamer)
(16 . ,token-renames-let)
(17 . ,token-renames-lambda)
(18 . ,token-renames-case-lambda)
@@ -143,5 +142,8 @@
pos
pos)
(error 'tokenize "bad signal: ~s" sig-n))))
+
+ (define (signal->symbol sig-n)
+ (cdr (assv sig-n signal-mapping)))
)
diff --git a/collects/macro-debugger/model/trace-raw.ss b/collects/macro-debugger/model/trace-raw.ss
@@ -9,29 +9,29 @@
(define current-expand-observe
(dynamic-require '#%expobs 'current-expand-observe))
-
+
(define (go-trace sexpr)
- (define browser
- (parameterize (#;(identifier=-choices
- (list (cons "related by table"
- (lambda (a b) (related-by-table table a b))))))
- (make-syntax-browser)))
- (define table #f)
+ (define events null)
(define pos 0)
+ (define browser (make-syntax-browser))
+ (define (show sig+val)
+ (define sig (car sig+val))
+ (define val (cdr sig+val))
+ (define t (tokenize sig val pos))
+ (send browser add-text
+ (format "Signal: ~s: ~s~n"
+ pos
+ (token-name (position-token-token t))))
+ (when val
+ (send browser add-syntax
+ (datum->syntax-object #f val)))
+ (set! pos (add1 pos)))
(parameterize ((current-expand-observe
(lambda (sig val)
(define t (tokenize sig val pos))
- (send browser add-text
- (format "Signal: ~s: ~s~n"
- pos
- (token-name (position-token-token t))))
- (send browser add-syntax
- (datum->syntax-object #f val))
- (set! pos (add1 pos)))))
- (expand sexpr)))
-
- (define (related-by-table table a b)
- (or (eq? a b)
- #;(and table '...)))
+ (set! events (cons (cons sig val) events))
+ #;(show (cons sig val)))))
+ (expand sexpr)
+ (for-each show (reverse events))))
)
\ No newline at end of file