anchor.diff:      ;
   
   INLINE_WS
  -    : [ ]+ -> channel(HIDDEN)
  +    :   [ ]+ -> channel(HIDDEN)
       ;
   
   LINE_BREAK
  -    : ('\n' | '\r\n') -> channel(HIDDEN)
  +    :   ('\n' | '\r\n') -> channel(HIDDEN)
       ;
   
   LINE_COMMENT
  
positive.code: mode LITERAL;
  
  LITERAL_INLINE_WS
      : [ ]+ -> channel(HIDDEN)
      ;
  
  ANYTHING
      : ~[ \t\r\n\u000C]+ -> popMode
      ;
  
  mode CONSTRAINT_MODE;
  
  CONSTRAINT_INLINE_WS
      : [ ]+ -> channel(HIDDEN)
      ;
  
  GREATER_THAN_OR_EQUAL
      : '>='
      ;
  
  LESS_THAN_OR_EQUAL
      : '<='
      ;
  
  GREATER_THAN
      : '>'
      ;
  
  LESS_THAN
      : '<'
      ;
  
  CONJUNCTION
      : '&'
      ;
  
  DISJUNCTION
      : '|'
      ;
  
  SIZE_OF
      : '#'
      ;
  
  HAS_SOME
      : 'e'
      ;
  
  REAL_LITERAL
  
negative.code:     ;
  
  CONSTRAINT_END
      :   ']' -> popMode
      ;
  