/collects/compiler/commands/decompile.rkt
http://github.com/gmarceau/PLT · Racket · 25 lines · 23 code · 2 blank · 0 comment · 2 complexity · cd6be2ca0a298588f7e19b187419e3e1 MD5 · raw file
- #lang scheme/base
- (require scheme/cmdline
- raco/command-name
- compiler/zo-parse
- compiler/decompile
- scheme/pretty)
- (define source-files
- (command-line
- #:program (short-program+command-name)
- #:args source-or-bytecode-file
- source-or-bytecode-file))
- (for ([zo-file source-files])
- (let ([zo-file (path->complete-path zo-file)])
- (let-values ([(base name dir?) (split-path zo-file)])
- (let ([alt-file (build-path base "compiled" (path-add-suffix name #".zo"))])
- (parameterize ([current-load-relative-directory base]
- [print-graph #t])
- (pretty-print
- (decompile
- (call-with-input-file*
- (if (file-exists? alt-file) alt-file zo-file)
- (lambda (in)
- (zo-parse in))))))))))