anchor.diff:  :
      [ \t\u000C]
   ;
  +
   mode M_COMMENT;
   
   M_COMMENT_COMMENT
   :
  -   F_NonNewlineChar+ -> channel(HIDDEN)
  +   F_NonNewlineChar+ -> channel ( HIDDEN )
   ;
   
   M_COMMENT_NEWLINE
   :
  -   F_NewlineChar+ -> type(NEWLINE), popMode
  +   F_NewlineChar+ -> type ( NEWLINE ) , popMode
   ;
  +
  +mode M_DoubleQuote;
  +
  +M_DoubleQuote_VARIABLE
  +:
  +   ~'"'+ -> type ( VARIABLE )
  +;
  +
  +M_DoubleQuote_DOUBLE_QUOTE
  +:
  +   '"' -> channel ( HIDDEN ) , popMode
  +;
  +
  +mode M_SingleQuote;
  +
  +M_SingleQuote_VARIABLE
  +:
  +   ~'\''+ -> type ( VARIABLE )
  +;
  +
  +M_SingleQuote_SINGLE_QUOTE
  +:
  +   '\'' -> channel ( HIDDEN ) , popMode
  +;
  
positive.code:    ','
  ;
  
  HASH
  :
     '#' -> pushMode(M_COMMENT), channel(HIDDEN)
  ;
  
  NEWLINE
  :
     F_NewlineChar+
  ;
  
  VARIABLE
  
negative.code: 
  WS
  :
     F_WhitespaceChar+ -> channel ( HIDDEN )
  ;
  
  fragment
  