From 3eaa70e2483454bc5f99361d7c8f3a4fd8f29633 Mon Sep 17 00:00:00 2001 From: frese Date: Thu, 26 Aug 2004 15:38:40 +0000 Subject: [PATCH] - added action-clause without bindings for convenience - fixed expect macro --- scheme/expect.scm | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/scheme/expect.scm b/scheme/expect.scm index 7998354..18aa27c 100644 --- a/scheme/expect.scm +++ b/scheme/expect.scm @@ -333,6 +333,8 @@ ;; Syntax based on procedural interface +;; TODO: better error recognition/messages + (define-syntax expect-options-clauses (syntax-rules (on-timeout timeout echo max-size monitor) ((expect-options-clauses) @@ -373,6 +375,8 @@ (lambda () exp) (lambda (v) (proc v))) (expect-action-clauses clause ...))) + ((expect-action-clauses (pattern () body ...) clause ...) + (expect-action-clauses (pattern (ignore) body ...) clause ...)) ((expect-action-clauses (pattern (match mvars ...) body ...) clause ...) (cons (list 'match (lambda () pattern) (lambda (m) @@ -399,10 +403,10 @@ (define-syntax expect (syntax-rules () + ((expect (x ...) eclause ...) + (let ((r (expect-clauses (x ...) eclause ...))) + (expect* (car r) (cdr r)))) ((expect name (var-inits ...) eclause ...) (let name (var-inits ...) (let ((r (expect-clauses eclause ...))) - (expect* (car r) (cdr r))))) - ((expect (x ...) eclause ...) - (let ((r (expect-clauses (x ...) eclause ...))) - (expect* (car r) (cdr r)))))) + (expect* (car r) (cdr r)))))))