Inline reader module; add port->preserves
This commit is contained in:
parent
ed3cd8de26
commit
7ab12108e4
|
@ -1,21 +0,0 @@
|
|||
#lang racket/base
|
||||
|
||||
(provide (rename-out [read-preserves-schema-module read-syntax]))
|
||||
|
||||
(require preserves)
|
||||
(require racket/port)
|
||||
|
||||
(require "../reader.rkt")
|
||||
(require "../compiler.rkt")
|
||||
|
||||
(define (read-preserves-schema-module src [p (current-input-port)])
|
||||
(define-values (_dirname filename _must-be-dir) (split-path src))
|
||||
(define module-stx
|
||||
(schema->module-stx
|
||||
(string->symbol (path->string (path-replace-extension filename "")))
|
||||
(parse-schema-dsl (port->list (lambda (p) (read-preserve p #:read-syntax? #t #:source src)) p)
|
||||
#:source src
|
||||
#:read-include (lambda (src) (file->preserves src #:read-syntax? #t)))))
|
||||
;; (local-require racket/pretty)
|
||||
;; (pretty-write module-stx) (newline)
|
||||
module-stx)
|
|
@ -2,4 +2,18 @@
|
|||
|
||||
(provide schema->module-stx)
|
||||
|
||||
(require "compiler.rkt")
|
||||
(require (only-in "compiler.rkt" schema->module-stx))
|
||||
|
||||
(module+ reader
|
||||
(provide (rename-out [read-preserves-schema-module read-syntax]))
|
||||
|
||||
(require (only-in preserves port->preserves file->preserves))
|
||||
(require (only-in "reader.rkt" parse-schema-dsl))
|
||||
|
||||
(define (read-preserves-schema-module src [p (current-input-port)])
|
||||
(define-values (_dirname filename _must-be-dir) (split-path src))
|
||||
(schema->module-stx
|
||||
(string->symbol (path->string (path-replace-extension filename "")))
|
||||
(parse-schema-dsl (port->preserves p #:read-syntax? #t #:source src)
|
||||
#:source src
|
||||
#:read-include (lambda (src) (file->preserves src #:read-syntax? #t))))))
|
||||
|
|
|
@ -13,10 +13,12 @@
|
|||
|
||||
detect-preserve-syntax
|
||||
read-preserve
|
||||
port->preserves
|
||||
file->preserves)
|
||||
|
||||
(require racket/match)
|
||||
(require (only-in racket/file file->list))
|
||||
(require (only-in racket/port port->list))
|
||||
|
||||
(require "record.rkt")
|
||||
(require "float.rkt")
|
||||
|
@ -56,3 +58,14 @@
|
|||
#:read-syntax? read-syntax?
|
||||
#:decode-embedded decode-embedded
|
||||
#:source path))))
|
||||
|
||||
(define (port->preserves in-port
|
||||
#:read-syntax? [read-syntax? #f]
|
||||
#:decode-embedded [decode-embedded #f]
|
||||
#:source [source (object-name in-port)])
|
||||
(port->list (lambda (in-port)
|
||||
(read-preserve in-port
|
||||
#:read-syntax? read-syntax?
|
||||
#:decode-embedded decode-embedded
|
||||
#:source source))
|
||||
in-port))
|
||||
|
|
Loading…
Reference in New Issue