From 7bb49752f49ed8c2547955be0f06e85c49dbc450 Mon Sep 17 00:00:00 2001 From: Tony Garnock-Jones Date: Thu, 3 May 2012 16:31:05 -0400 Subject: [PATCH] role/fresh macro --- indenting2.el | 2 +- os2.rkt | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/indenting2.el b/indenting2.el index 095c1a2..f6b60c0 100644 --- a/indenting2.el +++ b/indenting2.el @@ -3,4 +3,4 @@ (mapcar #'(lambda (x) (put x 'scheme-indent-function 1)) '(transition extend-transition)) (mapcar #'(lambda (x) (put x 'scheme-indent-function 2)) - '(role yield))) + '(role role/fresh yield))) diff --git a/os2.rkt b/os2.rkt index 9f2c1d7..89b9c21 100644 --- a/os2.rkt +++ b/os2.rkt @@ -23,6 +23,7 @@ extend-transition role + role/fresh (except-out (struct-out add-role) add-role) (rename-out [make-add-role add-role]) (except-out (struct-out delete-role) delete-role) @@ -186,6 +187,10 @@ topics-expr (handlers presence-handler absence-handler message-handler)))]))) +(define-syntax-rule (role/fresh pre-eid-var rest ...) + (let ((pre-eid-var (gensym 'role))) + (role pre-eid-var rest ...))) + (define-syntax-rule (yield-macro #:state state-pattern body ...) (yield (match-lambda [state-pattern body ...])))