Accept parameters in #lang preserves-schema lines
This commit is contained in:
parent
12e38ddd8f
commit
139f4ff08b
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
(provide batch-compile load-plugins)
|
(provide batch-compile load-plugins)
|
||||||
|
|
||||||
(require "../main.rkt")
|
(require "../compiler.rkt")
|
||||||
(require "../reader.rkt")
|
(require "../reader.rkt")
|
||||||
(require racket/match)
|
(require racket/match)
|
||||||
(require racket/pretty)
|
(require racket/pretty)
|
||||||
|
|
|
@ -6,13 +6,28 @@
|
||||||
|
|
||||||
(module+ reader
|
(module+ reader
|
||||||
(provide (rename-out [read-preserves-schema-module read-syntax]))
|
(provide (rename-out [read-preserves-schema-module read-syntax]))
|
||||||
|
(require racket/match)
|
||||||
(require (only-in "reader.rkt" port->schema))
|
(require (only-in "reader.rkt" port->schema))
|
||||||
|
(require (only-in racket/port port->list))
|
||||||
|
(require (only-in "bin/preserves-schema-rkt.rkt" load-plugins))
|
||||||
(define (read-preserves-schema-module src [p (current-input-port)])
|
(define (read-preserves-schema-module src [p (current-input-port)])
|
||||||
(define-values (_dirname filename _must-be-dir) (split-path src))
|
(define-values (_dirname filename _must-be-dir) (split-path src))
|
||||||
|
(define plugin-modules '())
|
||||||
|
(let loop ((params (port->list read (open-input-string (read-line p)))))
|
||||||
|
(match params
|
||||||
|
['()
|
||||||
|
(void)]
|
||||||
|
[(list* '#:plugin modname more)
|
||||||
|
(set! plugin-modules (cons modname plugin-modules))
|
||||||
|
(loop more)]
|
||||||
|
[other
|
||||||
|
(raise-syntax-error #f "Invalid #lang preserves-schema parameters: ~v" other)]))
|
||||||
|
(define plugins (load-plugins plugin-modules))
|
||||||
(schema->module-stx
|
(schema->module-stx
|
||||||
(string->symbol (path->string (path-replace-extension filename "")))
|
(string->symbol (path->string (path-replace-extension filename "")))
|
||||||
(lambda (module-path) #f)
|
(lambda (module-path) #f)
|
||||||
(port->schema src p)
|
(port->schema src p)
|
||||||
|
#:plugins plugins
|
||||||
#:translation-paths (schema-translation-paths src
|
#:translation-paths (schema-translation-paths src
|
||||||
filename
|
filename
|
||||||
#f
|
#f
|
||||||
|
|
Loading…
Reference in New Issue