packages feed

cpsa-4.4.4: tst/yes-or-no.scm

(herald yes-or-no)

(defprotocol yes-or-no basic
  (defrole init-positive
    (vars (y n data) (question text) (ans name) (ans-key akey))
    (trace
     (send (enc question y n ans-key))
     (recv y)))

  (defrole init-negative
    (vars (y n data) (question text) (ans name) (ans-key akey))
    (trace
     (send (enc question y n ans-key))
     (recv n)))

  (defrole resp-positive
    (vars (y n data) (question text) (ans name) (ans-key akey))
    (trace
     (recv (enc question y n ans-key))
     (send y)))

  (defrole resp-negative
    (vars (y n data) (question text) (ans name) (ans-key akey))
    (trace
     (recv (enc question y n ans-key))
     (send n))))

(defskeleton yes-or-no
  (vars (y data) (ans-key akey))
  (defstrand init-positive 2 (y y) (ans-key ans-key))
  (uniq-orig y)
  (non-orig (invk ans-key)))

(defskeleton yes-or-no
  (vars (ans-key akey) (n data))
  (defstrand init-negative 2 (n n) (ans-key ans-key))
  (uniq-orig n) 
  (non-orig (invk ans-key)))

(defskeleton yes-or-no
  (vars (y data) (ans-key akey))
  (defstrand init-positive 1 (y y) (ans-key ans-key))
  (deflistener y)
  (uniq-orig y)
  (non-orig (invk ans-key)))

(defskeleton yes-or-no
  (vars (n data) (ans-key akey))
  (defstrand init-positive 1 (n n) (ans-key ans-key))
  (deflistener n) 
  (uniq-orig n)
  (non-orig (invk ans-key)))