anchor.diff:  
   ID                      :   [a-zA-Z][a-zA-Z0-9]*;
   
  -WS                      : (' '|'\r'|'\n') -> skip;
  -COMMENT                 : ( '//' ~[\r\n]* '\r'? '\n' | '/*' .*? '*/' ) -> skip;+WS                      :   (' '|'\r'|'\n') -> skip;
  +COMMENT                 :   ( '//' ~[\r\n]* '\r'? '\n' | '/*' .*? '*/' ) -> skip;
positive.code: INT                     :   'int';
  FLOAT                   :   'float';
  STRING                  :   'string';
  TAB_SUFFIX              :   '[]';
  
  // control sequences
  CTRL_IMPORT             :   'import';
  CTRL_DEF                :   'def';
  CTRL_RETURN             :   'return';
  CTRL_IF                 :   'if';
  
negative.code:     CTRL_DEF (variableDefinition | functionDefinition);
  
  variableDefinition :
      type identifier TAB_SUFFIX? expression SEMICOLON;
  
  value :
      VAL_STRING | VAL_INT | VAL_FLOAT;
  