anchor.diff:  
   
   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  +;; Parameters
  +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  +
  +(defparameter *label-pattern* "^!\\?[a-z][a-z0-9]*$")
  +
  +(defparameter *process-pattern* "^[A-Z][a-zA-Z0-9]*$")
  +
  +
  +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
   ;; Public functions
   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
   
  
positive.code:   "Accetta una stringa e tenta di costruire un albero sintattico a partire
    dalla stringa data.
    Ritorna nil se non riesce, l'albero sintattico se riesce."
    nil)
  
  
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;; Private functions
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  
  (defun is-action (expr)
    "Ritorna T se expr è un'etichetta di un'azione, il suo complementare tau;
  
negative.code: (defun is-label (expr)
    "Ritorna T se expr è un'etichetta di un'azione o il suo complementare; NIL
    altrimenti"
    (cond ((match *label-pattern* expr) t)
  	(t nil)))
  
  
  (defun is-process (expr)
    "Ritorna T se expr è un processo; NIL altrimenti"
    (cond ((match *process-pattern* expr) t)
  	(t nil)))
  