Fix syntax/cond so that:
authorGuillermo J. Rozas <edu/mit/csail/zurich/gjr>
Sat, 14 Oct 1989 15:48:39 +0000 (15:48 +0000)
committerGuillermo J. Rozas <edu/mit/csail/zurich/gjr>
Sat, 14 Oct 1989 15:48:39 +0000 (15:48 +0000)
a: (cond) is legal.
b: (cond 3) gives a reasonable error message.

v7/src/runtime/syntax.scm

index 7b414d4d6ded1acb0fcd7457436c8f78626eaa00..463f7f186d36642cda0192aa1867868d9209d625 100644 (file)
@@ -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))\f
+  (next clauses))
+\f
 ;;;; Procedures
 
 (define (syntax/lambda pattern . body)