From 27322a3c809fdf46fa6636d85337c86c8b33d519 Mon Sep 17 00:00:00 2001 From: Yuichi Nishiwaki Date: Tue, 9 Sep 2014 00:59:12 +0900 Subject: [PATCH] update benz (_ and ...) --- extlib/benz | 2 +- piclib/picrin/base.scm | 22 +++++++++++----------- piclib/picrin/syntax-rules.scm | 14 +++++++++++++- piclib/scheme/base.scm | 8 +++++--- 4 files changed, 30 insertions(+), 16 deletions(-) diff --git a/extlib/benz b/extlib/benz index 2d805222..c3acc4cb 160000 --- a/extlib/benz +++ b/extlib/benz @@ -1 +1 @@ -Subproject commit 2d80522230358a4f3f2a1cd1af56da16d0f612d0 +Subproject commit c3acc4cb44bcf3baf9c50bb4667ad20c77660c3f diff --git a/piclib/picrin/base.scm b/piclib/picrin/base.scm index b7c8ab53..7cdd3297 100644 --- a/piclib/picrin/base.scm +++ b/piclib/picrin/base.scm @@ -8,13 +8,14 @@ begin define-syntax) + (export syntax-error + let-syntax + letrec-syntax) + (export let let* letrec letrec* - let-values - let*-values - define-values quasiquote unquote unquote-splicing @@ -22,17 +23,16 @@ or cond case + => + else do when unless - let-syntax - letrec-syntax - include - => - else - _ - ... - syntax-error) + include) + + (export let-values + let*-values + define-values) (export eq? eqv? diff --git a/piclib/picrin/syntax-rules.scm b/piclib/picrin/syntax-rules.scm index 1f206ac6..342650a5 100644 --- a/piclib/picrin/syntax-rules.scm +++ b/piclib/picrin/syntax-rules.scm @@ -2,6 +2,16 @@ (import (picrin base) (picrin macro)) + (define-syntax define-auxiliary-syntax + (er-macro-transformer + (lambda (expr r c) + (list (r 'define-syntax) (cadr expr) + (list (r 'lambda) '_ + (list (r 'error) "invalid use of auxiliary syntax")))))) + + (define-auxiliary-syntax _) + (define-auxiliary-syntax ...) + (define (walk proc expr) (cond ((null? expr) @@ -332,4 +342,6 @@ `(,_syntax-error "malformed syntax-rules")))))) - (export syntax-rules)) + (export syntax-rules + _ + ...)) diff --git a/piclib/scheme/base.scm b/piclib/scheme/base.scm index 5c918d99..92e20235 100644 --- a/piclib/scheme/base.scm +++ b/piclib/scheme/base.scm @@ -4,8 +4,6 @@ (picrin record) (picrin syntax-rules)) - (export else => _ ...) - ;; 4.1.2. Literal expressions (export quote) @@ -30,6 +28,8 @@ (export cond case + else + => and or when @@ -145,7 +145,9 @@ ;; 4.3.2 Pattern language - (export syntax-rules) + (export syntax-rules + _ + ...) ;; 4.3.3. Signaling errors in macro transformers