From 1592cb08f184c0e7855c97598d1699643609ad3a Mon Sep 17 00:00:00 2001 From: Ben Greenman Date: Wed, 8 Jun 2016 15:04:08 -0400 Subject: [PATCH] [private] add s-exp printer output --- trivial/private/command-line.rkt | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/trivial/private/command-line.rkt b/trivial/private/command-line.rkt index 538ce25..b6d8816 100644 --- a/trivial/private/command-line.rkt +++ b/trivial/private/command-line.rkt @@ -34,15 +34,22 @@ (define (log->data ln) (string->symbol (last (string-split ln)))) -(define (summarize H) +(define (summarize fname H) + (summarize-sexp fname H)) + +(define (summarize-sexp fname H) + (printf "(~a" fname) + (define-values (kv* pad-to) (hash->kv+pad H)) + (for ([kv (in-list (sort kv* > #:key cdr))]) + (newline) + (printf " (~a\t~a)" (~a (car kv) #:min-width pad-to) (cdr kv))) + (printf ")\n")) + +(define (summarize-ascii H) (define msg "Summary of trivial HITS:") (displayln msg) (displayln (make-string (string-length msg) #\=)) - (define-values (kv* pad-to) - (for/fold ([acc '()] - [pad-to 0]) - ([(k v) (in-hash H)]) - (values (cons (cons k v) acc) (max pad-to (string-length (symbol->string k)))))) + (define-values (kv* pad-to) (hash->kv+pad H)) (for ([kv (in-list (sort kv* > #:key cdr))]) (displayln (string-append "- " @@ -50,8 +57,14 @@ "\t" (number->string (cdr kv)))))) +(define (hash->kv+pad H) + (for/fold ([acc '()] + [pad-to 0]) + ([(k v) (in-hash H)]) + (values (cons (cons k v) acc) (max pad-to (string-length (symbol->string k)))))) + (define (remove-compiled ps) - (define c-dir (build-path (path-only ps) "compiled")) + (define c-dir (build-path (or (path-only ps) (current-directory)) "compiled")) (define fname (path-replace-extension (file-name-from-path ps) "_rkt.zo")) (define c-file (build-path c-dir fname)) (cond @@ -109,7 +122,7 @@ (close-output-port out) (close-input-port err) ;; -- - (summarize H) + (summarize fname H) )) ;; -----------------------------------------------------------------------------