language/acl2-reader.scm
#|
Provides read and read-syntax so that we can use

  #reader(lib "acl2-reader.scm" "acl2" "private")(module ...)
  
to write ACL2 modules.  (Teachpacks in particular use this.)
|#
(module acl2-reader mzscheme
  (require (file "acl2-readtable.scm"))
  (provide (rename acl2-read-syntax read-syntax)
           (rename acl2-read read))

  (define (make-acl2-reader reader)
    (lambda args
      (parameterize ([current-readtable acl2-readtable]
                     [read-square-bracket-as-paren #f]
                     [read-case-sensitive #f]
                     [read-accept-box #f]
                     [read-accept-reader #f]
                     [read-decimal-as-inexact #f])
        (apply reader args))))

  (define acl2-read-syntax (make-acl2-reader read-syntax))

  (define acl2-read (make-acl2-reader read))

  )