racket/collects/macro-debugger/syntax-browser/syntax-browser.ss
Ryan Culpepper d91e2b4502 Added the macro stepper
svn: r3987
2006-08-08 20:32:58 +00:00

53 lines
1.5 KiB
Scheme

(module syntax-browser mzscheme
(require (lib "class.ss")
(lib "mred.ss" "mred")
(lib "framework.ss" "framework")
"interfaces.ss"
"prefs.ss"
"syntax-snip.ss"
"widget.ss")
(provide browse-syntax
browse-syntaxes
syntax-browser<%>
make-syntax-browser
syntax-snip)
;; browse-syntax : syntax -> void
(define (browse-syntax stx)
(browse-syntaxes (list stx)))
;; browse-syntaxes : (list-of syntax) -> void
(define (browse-syntaxes stxs)
(let ((w (make-syntax-browser)))
(for-each (lambda (stx)
(send w add-syntax stx)
(send w add-separator))
stxs)))
;; make-syntax-browser : -> syntax-browser<%>
(define (make-syntax-browser)
(let* ([view (new syntax-browser-frame%)])
(send view show #t)
(send view get-widget)))
;; syntax-snip : syntax -> snip
(define (syntax-snip stx)
(new super-syntax-snip% (syntax stx)))
; ;; syntaxes-snip : syntaxes -> snip
; (define (syntaxes-snip stxs)
; (let* ([controller (new syntax-controller%)]
; [view (new syntax-snip% (controller controller))])
; (let loop ([stxs stxs])
; (cond [(null? stxs) (void)]
; [(null? (cdr stxs))
; (send controller add-syntax (car stxs))]
; [else
; (send controller add-syntax (car stxs))
; #;(send controller add-separator)
; (loop (cdr stxs))]))
; view))
)