anchor.diff:  | Dot
   | Semicolon
   | Comma
  -| LessThan
  -| GreaterThan
   | LessThanEqual
   | GreaterThanEqual
   | EqualEqual
   | ExclamationEqual
   | EqualEqualEqual
   | ExclamationEqualEqual
  -| Plus
  -| Minus
  -| Asterisk
  -| Percent
   | PlusPlus
   | MinusMinus
  -| LessThanLessThan
   | GreaterThanGreaterThan
   | GreaterThanGreaterThanGreaterThan
  -| Ampersand
  -| Pipe
  -| Caret
  -| Exclamation
  -| Tilde
  +| LessThanLessThan
   | AmpersandAmpersand
  -| PipePipe
  -| QuestionMark
  -| Colon
  -| Equal
   | PlusEqual
   | MinusEqual
   | AsteriskEqual
  
positive.code:     :   SingleLineComment
      |   MultiLineComment
      ;
  
  
  fragment
  SingleLineComment
  
negative.code: | AmpersandEqual
  | PipeEqual
  | CaretEqual
  | LessThan
  | GreaterThan
  | Plus
  | Minus
  | Asterisk
  | Percent
  | Ampersand
  | Pipe
  | Caret
  | Exclamation
  | Tilde
  | PipePipe
  | QuestionMark
  | Colon
  | Equal
  ;
  
  DivPunctuator
  : Divide
  | DivideEqual
  ;
  
  fragment CurlyBracketOpen: '{';
  fragment CurlyBracketClose: '}';
  fragment RoundBracketOpen: '(';
  