44 lines
888 B
Scheme
44 lines
888 B
Scheme
(require (lib "scheme-lexer.ss" "syntax-color"))
|
|
|
|
(define path "~/proj/plt/collects/framework/private/frame.ss")
|
|
|
|
(define content
|
|
(with-input-from-file path
|
|
(lambda ()
|
|
(read-bytes (file-size path)))))
|
|
|
|
(define e (make-object text%))
|
|
(send e load-file path)
|
|
|
|
(define (mk-p)
|
|
;#;
|
|
(open-input-text-editor e)
|
|
#;
|
|
(open-input-bytes content)
|
|
#;
|
|
(open-input-string (send e get-text 0 'eof)))
|
|
|
|
(let loop ([n 10])
|
|
(unless (zero? n)
|
|
(printf "lexing~n")
|
|
(time
|
|
(let ([p (mk-p)])
|
|
(port-count-lines! p)
|
|
(time
|
|
(let loop ()
|
|
(let-values ([(a b c d e) (scheme-lexer p)])
|
|
(unless (eq? 'eof b)
|
|
(loop)))))))
|
|
(printf "reading~n")
|
|
(time
|
|
(let ([p (mk-p)])
|
|
(port-count-lines! p)
|
|
(time
|
|
(let loop ()
|
|
(let ([v (read p)])
|
|
(unless (eof-object? v)
|
|
(loop)))))))
|
|
(printf "done~n")
|
|
(loop (sub1 n))))
|
|
|