anchor.diff:            make-tm-match
             make-tm-region
             add-tm-pattern
  +          add-tm-repository
             make-tm-patterns
             make-tm-name))
  +
  +;;; TODO
  +;;; begin/endルールでbeginのキャプチャをendで使えるようにする
   
   (defclass tmlanguage (syntax-parser)
     ((patterns
       :initarg :patterns
  -    :accessor tmlanguage-patterns)))
  +    :accessor tmlanguage-patterns)
  +   (repository
  +    :initarg :repository
  +    :accessor tmlanguage-repository)))
   
   (defclass tm-rule ()
     ((name
  
positive.code:     :initform nil
      :reader tm-match-move-action)))
  
  (defclass tm-patterns ()
    ((patterns
      :initarg :patterns
      :accessor patterns)))
  
  (defun make-tmlanguage ()
    (make-instance 'tmlanguage :patterns (make-tm-patterns)))
  
  (defun make-tm-match (matcher &key name captures move-action)
    (make-instance 'tm-match
  
negative.code:                  :content-name content-name
                   :patterns patterns))
  
  (defun make-tm-include (spec)
    (cond ((string= spec "$self")
           (make-instance 'tm-include :type :self))
          ((char= #\# (schar spec 0))
           (make-instance 'tm-include :type :repository :refer (subseq spec 1)))
          (t
           (error "unsupported spec: ~A" spec))))
  
  (defun make-regex-matcher (regex)
    (ppcre:create-scanner regex))
  
  