Behaviours are now tagged lists.
[sam.git] / sam-macros.scm
index 16faba3..bbf8ada 100644 (file)
@@ -1,8 +1,7 @@
 ;; Macro definitions used for SAM behaviour definition
 ;;
 
-(module sam-macros
-    (make-beh define-beh)
+(module sam-macros *
 
   (import scheme
           (chicken base)
@@ -11,7 +10,8 @@
   (define-syntax make-beh
     (syntax-rules (: => finally)
       ((make-beh : parent (self) (pat => body ...) ... (finally after ...))
-       (cons (lambda (self . message)
+       (list 'beh
+             (lambda (self . message)
                (match message
                  (pat body ...)
                  ...
   (define-syntax define-beh
     (syntax-rules ()
       ((_ name rest ...)
-       (define name (make-beh rest ...))))))
+       (define name (make-beh rest ...)))))
+
+  (define-syntax make-actor-with-beh
+    (syntax-rules ()
+      ((_ rest ...)
+       (make-actor
+        (make-beh rest ...)))))
+
+  (define-syntax define-actor-with-beh
+    (syntax-rules ()
+      ((_ name rest ...)
+       (define name
+         (make-actor-with-beh rest ...))))))
+