summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ice-9/syncase.scm18
1 files changed, 14 insertions, 4 deletions
diff --git a/ice-9/syncase.scm b/ice-9/syncase.scm
index fff3ca199..dea7d615c 100644
--- a/ice-9/syncase.scm
+++ b/ice-9/syncase.scm
@@ -1,4 +1,4 @@
-;;;; Copyright (C) 1997, 2000, 2001 Free Software Foundation, Inc.
+;;;; Copyright (C) 1997, 2000, 2001, 2002 Free Software Foundation, Inc.
;;;;
;;;; This program is free software; you can redistribute it and/or modify
;;;; it under the terms of the GNU General Public License as published by
@@ -44,7 +44,8 @@
(define-module (ice-9 syncase)
:use-module (ice-9 debug)
:use-module (ice-9 threads)
- :export-syntax (sc-macro define-syntax eval-when fluid-let-syntax
+ :export-syntax (sc-macro define-syntax define-syntax-public
+ eval-when fluid-let-syntax
identifier-syntax let-syntax
letrec-syntax syntax syntax-case syntax-rules
with-syntax
@@ -99,8 +100,8 @@
(define include sc-macro)
(define primitive-syntax '(quote lambda letrec if set! begin define or
- and let let* cond do quasiquote unquote
- unquote-splicing case))
+ and let let* cond do quasiquote unquote
+ unquote-splicing case))
(for-each (lambda (symbol)
(set-symbol-property! symbol 'primitive-syntax #t))
@@ -237,3 +238,12 @@
'(define))))
(define syncase sc-expand)
+
+(set-module-transformer! the-syncase-module syncase)
+
+(define-syntax define-syntax-public
+ (syntax-rules ()
+ ((_ name rules ...)
+ (begin
+ ;(eval-case ((load-toplevel) (export-syntax name)))
+ (define-syntax name rules ...)))))