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 ...])))