#lang s-exp syntax/module-reader
(planet wrturtle/pyret/bsl/language)
#:read my-read
#:read-syntax my-read-syntax
(require "../form-1.rkt"
"../lex.rkt"
"../parse.rkt"
"../check.rkt"
syntax/strip-context
)
(define (my-read ip)
(syntax->datum (my-read-syntax #f ip)))
(define (my-read-syntax src ip)
(parameterize ([current-source-name src])
(let ([parse
(program-parser
(lambda ()
(expression-lexer ip)))])
(if (stage-1-parse? parse)
(let ([val (to-racket (check-indent (check-return parse)))])
(if (list? val)
(begin (printf "parse is a list\n") (strip-context (datum->syntax #f val)))
val))
eof))))