anchor.diff:  
   variable
       : DOLLAR identifier
  +    ;
  +
  +SEMICOLON
  +    : ';'
  +    ;
  +
  +COMMA
  +    : ','
       ;
   
   DOLLAR
  
positive.code:     : '\"' ('\"\"' | ~('\"'))* '\"'
      ;
  
  NUM_INT
      : ('0'..'9')+ (('.' ('0'..'9')+ (EXPONENT)?)?|EXPONENT)
      ;
  
  fragment
  EXPONENT
      : ('e') ('+'|'-')? ('0'..'9')+
      ;
  
  SPACE
  
negative.code:     : '!'
      ;
  
  
  LPAREN
      : '('
      ;
  
  RPAREN
      : ')'
      ;
  
  ADD
      : '+'
      ;
  
  SUBTRACT
      : '-'
      ;
  
  MULTIPLY
      : '*'
      ;
  
  DIVIDE
      : '/'
      ;
  
  IDENTIFIER
      : ('a'..'z' | 'A'..'Z')  ('a'..'z'|'A'..'Z'|'0'..'9')*
      ;
  