From 795a520a3cf53edb41e17986e93d6b258d97a2d8 Mon Sep 17 00:00:00 2001 From: jsancho Date: Tue, 6 Sep 2011 18:54:06 +0000 Subject: [PATCH] --- src/gacela_mobs.scm | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/gacela_mobs.scm b/src/gacela_mobs.scm index aeb65d9..1012301 100755 --- a/src/gacela_mobs.scm +++ b/src/gacela_mobs.scm @@ -191,6 +191,17 @@ (lambda () (look attr)) (lambda (key . args) #f))))))))) +(define-macro (define-mob mob-head . body) + (let ((name (car mob-head)) (attr (cdr mob-head))) + `(define ,(string->symbol (string-concatenate (list "make-" (symbol->string name)))) + (lambda-mob ,attr ,@body)))) + +(define-macro (lambda-mob attr . body) + `(lambda () + (let ,(cons '(mob-id (gentemp)) attr) + (lambda () + ,@body)))) + (define (get-mob-attr mob var) (let ((value (assoc-ref (mob 'get-attr) var))) -- 2.39.2