anchor.diff:    TOKEN
   ;
   
  +attributes:
  +  CAT_ATTR_SEP ATTRIBUTES_ATTR VAL_ASSIGN QUOTE attributes_names QUOTE
  +;
  +attributes_names:
  +  attribute_attr_name (attribute_attr_name)*
  +;
  +
   link_header:
     LINK_HEADER  link_path rel (self | link_category)* attributes_attr?
   ;
  
positive.code:   TITLE_ATTR = 'title';
    REL_ATTR = 'rel';
    LOCATION_ATTR = 'location';
    SELF_ATTR = 'self';
    CAT_ATTR = 'category';
    CAT_ATTR_SEP = ';';
  
negative.code: */
  
  location_header:
    LOCATION_HEADER location_paths
  ;
  location_paths:
    location_path (',' location_path)*
  ;
  location_path:
    PATH
  ;
  
  ATTRIB_NAME: ('a'..'z' | 'A'..'Z')('a'..'z' | 'A'..'Z' | DIGIT)+ ('.') TOKEN;
  PATH: ('/' TOKEN) ('/' TOKEN)*;
  CLASS: ('kind'|'mixin'|'action');
  URI: ('http://' | 'https://') TOKEN;
  TOKEN: ('a'..'z' | 'A'..'Z') ('a'..'z' | 'A'..'Z')*;
  DIGIT: '0'..'9'+;
  WS: (' ' | '\t'){$channel = HIDDEN};