From 1086227419cfb0d69c32a4d43babb4f8665c5b80 Mon Sep 17 00:00:00 2001 From: "Guillermo J. Rozas" Date: Sat, 14 Oct 1989 15:48:39 +0000 Subject: [PATCH] Fix syntax/cond so that: a: (cond) is legal. b: (cond 3) gives a reasonable error message. --- v7/src/runtime/syntax.scm | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/v7/src/runtime/syntax.scm b/v7/src/runtime/syntax.scm index 7b414d4d6..463f7f186 100644 --- a/v7/src/runtime/syntax.scm +++ b/v7/src/runtime/syntax.scm @@ -1,6 +1,6 @@ #| -*-Scheme-*- -$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/Attic/syntax.scm,v 14.8 1989/04/18 16:30:11 cph Rel $ +$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/Attic/syntax.scm,v 14.9 1989/10/14 15:48:39 jinx Exp $ Copyright (c) 1988, 1989 Massachusetts Institute of Technology @@ -319,9 +319,11 @@ MIT in each case. |# (define (syntax/or . expressions) (expand-disjunction expressions)) -(define (syntax/cond clause . rest) +(define (syntax/cond . clauses) (define (loop clause rest) - (cond ((eq? (car clause) 'ELSE) + (cond ((not (pair? clause)) + (syntax-error "Bad COND clause" clause)) + ((eq? (car clause) 'ELSE) (if (not (null? rest)) (syntax-error "ELSE not last clause" rest)) (syntax-sequence (cdr clause))) @@ -352,7 +354,8 @@ MIT in each case. |# undefined-conditional-branch (loop (car rest) (cdr rest)))) - (loop clause rest)) + (next clauses)) + ;;;; Procedures (define (syntax/lambda pattern . body) -- 2.25.1