modular/expansion/syntax-errors.scm
(module syntax-errors mzscheme

  (require (lib "contract.ss")
           (lib "plt-match.ss")
           "../../private/planet.ss")
  (require-cce/scheme)

  (provide syntax-case/error syntax-case/name
           current-syntax syntax-error nyi)

  (define raised-exn/c
    (flat-named-contract "raised-exception" (lambda (v) #f)))

  (define-syntax (syntax-case/name stx)
    (syntax-case stx ()
      [(scn expr lits . clauses)
       (syntax/loc stx
         (syntax-case* expr lits text=? . clauses))]))

  (define-syntax (syntax-case/error stx)
    (syntax-case stx ()
      [(sce expr lits . clauses)
       (syntax/loc stx
         (parameterize ([current-syntax expr])
           (syntax-case/name (current-syntax) lits . clauses)))]))

  (define (nyi stx) (raise-syntax-error #f "not yet implemented" stx))

  )