diff --git a/implementations/racket/preserves/preserves-schema/lang/reader.rkt b/implementations/racket/preserves/preserves-schema/lang/reader.rkt deleted file mode 100644 index 6fb3782..0000000 --- a/implementations/racket/preserves/preserves-schema/lang/reader.rkt +++ /dev/null @@ -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) diff --git a/implementations/racket/preserves/preserves-schema/main.rkt b/implementations/racket/preserves/preserves-schema/main.rkt index 846d57e..84bf6e7 100644 --- a/implementations/racket/preserves/preserves-schema/main.rkt +++ b/implementations/racket/preserves/preserves-schema/main.rkt @@ -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)))))) diff --git a/implementations/racket/preserves/preserves/main.rkt b/implementations/racket/preserves/preserves/main.rkt index cc435ac..6808018 100644 --- a/implementations/racket/preserves/preserves/main.rkt +++ b/implementations/racket/preserves/preserves/main.rkt @@ -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))