diff --git a/collects/macro-debugger/model/deriv-tokens.ss b/collects/macro-debugger/model/deriv-tokens.ss index 155f9aa..9bc2ad3 100644 --- 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 index 1ae63bb..6db02f3 100644 --- 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