anchor.diff:  
   ARROWX: ARROW;
   
  +STRINGTYPEX: STRINGTYPE;
  +INTEGERTYPEX: INTEGERTYPE;
  +BOOLEANTYPEX: BOOLEANTYPE;
  +DOUBLETYPEX: DOUBLETYPE;
  +FLOATTYPEX: FLOATTYPE;
  +LONGTYPEX: LONGTYPE;
  +SHORTTYPEX: SHORTTYPE;
  +XMLTYPEX: XMLTYPE;
  +JSONTYPEX: JSONTYPE;
  +
  +VARX: VAR;
   
   // LEXER: Keywords
   
  
positive.code:     | groupStatement
      | refStatement
      | commentStatement
      ;
  
  // Definition of the high level name for this message flow
  
negative.code: fragment LOG: L O G;
  fragment ENRICH: E N R I C H;
  fragment TRANSFORM: T R A N S F O R M;
  fragment STRINGTYPE: S T R I N G;
  fragment INTEGERTYPE: I N T E G E R;
  fragment BOOLEANTYPE: B O O L E A N;
  fragment DOUBLETYPE: D O U B L E;
  fragment FLOATTYPE: F L O A T;
  fragment LONGTYPE: L O N G;
  fragment SHORTTYPE: S H O R T;
  fragment XMLTYPE: X M L;
  fragment JSONTYPE: J S O N;
  fragment VAR: V A R;
  
  fragment TYPEDEFINITION
      : INTEGERTYPE
      | STRINGTYPE
      | BOOLEANTYPE
      | LONGTYPE
      | SHORTTYPE
      | FLOATTYPE
      | DOUBLETYPE
      | XMLTYPE
      | JSONTYPE
      ;
  
  
  // case insensitive lexer matching
  fragment A:('a'|'A');
  