anchor.diff:    CLOSE_PATH = '>';
   }
   
  +@header {
  +  package be.edmonds.occi;
  +}
  +@lexer::header {
  +  package be.edmonds.occi;
  +}
   // ----------------------------------------
   // ---------- All OCCI Headers ------------
   // ----------------------------------------
  
positive.code:   CATEGORY_HEADER category_header_val
  ;
  category_header_val:
    term scheme class (title | rel | location | attributes)*
  ;
  term:
    TOKEN
  ;
  
  scheme:
    CAT_ATTR_SEP SCHEME_ATTR VAL_ASSIGN QUOTE scheme_val QUOTE
  ;
  scheme_val:
    URI
  ;
  
  class:
    CAT_ATTR_SEP CLASS_ATTR VAL_ASSIGN QUOTE class_val QUOTE
  ;
  class_val:
    CLASS
  ;
  
  title:
    CAT_ATTR_SEP TITLE_ATTR VAL_ASSIGN QUOTE title_val QUOTE
  ;
  title_val:
    TOKEN
  ;
  
  rel:
    CAT_ATTR_SEP REL_ATTR VAL_ASSIGN QUOTE rel_val QUOTE
  ;
  rel_val:
    TOKEN
  ;
  
  location:
    CAT_ATTR_SEP LOCATION_ATTR VAL_ASSIGN QUOTE location_val QUOTE
  ;
  location_val:
  
negative.code: URI: ('http://' | 'https://') TOKEN;
  TOKEN: ('a'..'z' | 'A'..'Z') ('a'..'z' | 'A'..'Z')*;
  DIGIT: '0'..'9'+;
  WS: (' ' | '\t' | '\n' | '\r'){$channel = HIDDEN;};