diff --git a/main.rkt b/main.rkt index 4d68fa4..710f43d 100644 --- a/main.rkt +++ b/main.rkt @@ -10,7 +10,7 @@ (define-syntax early-return* - (syntax-rules () + (syntax-rules (=> ? ~ do) ((_ () (b1 ...)) (let () b1 ...)) ((_ ((do d1 ...)) (b1 ...)) @@ -19,32 +19,32 @@ ((_ ((do d1 ...) c1 ...) (b1 ...)) (let () d1 ... (early-return* (c1 ...) (b1 ...)))) - ((_ ((v expr ? pred? -> retval ~ cleanup)) (b1 ...)) + ((_ ((v expr ? pred? => retval ~ cleanup)) (b1 ...)) (let ((v expr)) (cond (pred? cleanup retval) (else (let () b1 ...))))) - ((_ ((v expr ? pred? -> retval ~ cleanup) c1 ...) (b1 ...)) + ((_ ((v expr ? pred? => retval ~ cleanup) c1 ...) (b1 ...)) (let ((v expr)) (cond (pred? cleanup retval) (else (early-return* (c1 ...) (b1 ...)))))) - ((_ ((v expr ? pred? -> retval)) (b1 ...)) + ((_ ((v expr ? pred? => retval)) (b1 ...)) (let ((v expr)) (cond (pred? retval) (else (let () b1 ...))))) - ((_ ((v expr ? pred? -> retval) c1 ...) (b1 ...)) + ((_ ((v expr ? pred? => retval) c1 ...) (b1 ...)) (let ((v expr)) (cond (pred? retval) (else (early-return* (c1 ...) (b1 ...)))))) - ((_ ((? pred? -> retval)) (b1 ...)) + ((_ ((? pred? => retval)) (b1 ...)) (cond (pred? retval) (else (let () b1 ...)))) - ((_ ((? pred? -> retval) c1 ...) (b1 ...)) + ((_ ((? pred? => retval) c1 ...) (b1 ...)) (cond (pred? retval) (else (early-return* (c1 ...) (b1 ...))))) - ((_ ((? pred? -> retval ~ cleanup)) (b1 ...)) + ((_ ((? pred? => retval ~ cleanup)) (b1 ...)) (cond (pred? cleanup retval) (else (let () b1 ...)))) - ((_ ((? pred? -> retval ~ cleanup) c1 ...) (b1 ...)) + ((_ ((? pred? => retval ~ cleanup) c1 ...) (b1 ...)) (cond (pred? cleanup retval) (else (early-return* (c1 ...) (b1 ...))))) ((_ ((v expr)) (b1 ...)) @@ -57,7 +57,7 @@ ) (define-syntax early-return - (syntax-rules () + (syntax-rules (=> ? ~ do) ((_ (er1 ...) b1 ...) (early-return* (er1 ...) (b1 ...)) )