forked from dyoo/whalesong
/
parse-bytecode.rkt
50 lines (45 loc) · 1.62 KB
/
parse-bytecode.rkt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#lang racket/base
(require "../version-case/version-case.rkt"
"../logger.rkt"
racket/file
(prefix-in whalesong: "../version.rkt")
(for-syntax racket/base))
(version-case
[(and (version<= "5.1.1" (version))
(version< (version) "5.1.1.900"))
(begin
(log-debug "Using 5.1.1 bytecode parser")
(require "parse-bytecode-5.1.1.rkt")
(provide (except-out (all-from-out "parse-bytecode-5.1.1.rkt")
parse-bytecode)))]
[(and (version<= "5.1.1.900" (version))
(version< (version) "5.1.2"))
(begin
(log-debug "Using 5.1.2 bytecode parser")
(require "parse-bytecode-5.1.2.rkt")
(provide (except-out (all-from-out "parse-bytecode-5.1.2.rkt")
parse-bytecode)))]
[(and (version<= "5.2" (version))
(version< (version) "5.2.0.900"))
(begin
(log-debug "Using 5.2 bytecode parser")
(require "parse-bytecode-5.2.rkt")
(provide (except-out (all-from-out "parse-bytecode-5.2.rkt")
parse-bytecode)))]
[(and (version<= "5.2.0.900" (version))
;;(version< (version) "5.3")
)
(begin
(log-debug "Using 5.2.1 bytecode parser")
(require "parse-bytecode-5.2.1.rkt")
(provide (except-out (all-from-out "parse-bytecode-5.2.1.rkt")
parse-bytecode)))]
[else
(error 'parse-bytecode "Whalesong doesn't have a compatible parser for Racket ~a" (version))])
(provide (rename-out [my-parse-bytecode parse-bytecode]))
(define (my-parse-bytecode x)
(cond
[(path? x)
(parse-bytecode x)]
[else
(parse-bytecode x)]))