From 50f52283bb41b330f01e33d584b8174f27cf55c9 Mon Sep 17 00:00:00 2001 From: Tony Garnock-Jones Date: Mon, 16 Jul 2012 17:01:16 -0400 Subject: [PATCH] role/anon --- indenting2.el | 2 +- os2.rkt | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/indenting2.el b/indenting2.el index cebfd39..22b72fd 100644 --- a/indenting2.el +++ b/indenting2.el @@ -1,6 +1,6 @@ ;; Emacs indent settings (progn (mapcar #'(lambda (x) (put x 'scheme-indent-function 1)) - '(transition sequence-actions)) + '(role/anon transition sequence-actions)) (mapcar #'(lambda (x) (put x 'scheme-indent-function 2)) '(role role/fresh yield))) diff --git a/os2.rkt b/os2.rkt index 0395b34..e2540ec 100644 --- a/os2.rkt +++ b/os2.rkt @@ -34,6 +34,7 @@ transition/c))) role + role/anon role/fresh (except-out (struct-out add-role) add-role) (rename-out [make-add-role add-role]) @@ -267,6 +268,11 @@ topics-expr (handlers presence-handler absence-handler message-handler)))]))) +;; For use when you don't care to invent a name for a role. +(define-syntax-rule (role/anon topic pieces ...) + (role (gensym 'anonymous-role) topic pieces ...)) + +;; Invents a role name for you, and binds it to pre-eid-var. (define-syntax-rule (role/fresh pre-eid-var rest ...) (let ((pre-eid-var (gensym 'role))) (role pre-eid-var rest ...)))