anchor.diff:  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
   
   (defun print-tag-post-handler (obj)
  -  (ppcre:register-groups-bind (expr) ("^{(?:print )?([^}]*)}$" (second obj))
  -    (list (car obj)
  -          (parse-expression expr))))
  -
  +  (or (ppcre:register-groups-bind (expr) ("^{(?:print\\s+)?([^\\s}]+)}$" (second obj))
  +        (list (car obj)
  +              (parse-expr-or-discard expr)))
  +      (discard-parse-element)))
   
   (define-mode print-tag (200 :all)
     (:special "{print[^}]*}"
               "{[^}]*}")
     (:post-handler print-tag-post-handler))
   
  +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  +;;;; msg
  +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  +
   (define-mode msg (30 :all)
     (:entry "{msg[^}]*}(?=.*{/msg})")
     (:entry-attribute-parser parse-arguments)
  
positive.code: (eval-when (:compile-toplevel :load-toplevel :execute)
    (defparameter *symbols-category* (make-hash-table)))
  
  
  ;;;; utils
  
  (defun parse-arguments/impl (str)
    (let ((args nil))
  
negative.code:     (cons name
            (parse-arguments/impl args))))
  
  ;;;; closure template syntax
  ;;;; see http://code.google.com/intl/ru/closure/templates/docs/commands.html
  
  