anchor.diff:  
   fragment STRING_START:;
   STRING_LITERAL
  -    :   '"' StringPart ( '"' | '``' { $type = STRING_START; } (('`' ~'`') => '`')? )
  +    :   '"' StringPart ( '"' | '``' { $type = STRING_START; } (('`' ~'`') => '`')?  | (EOF)=> )
       ;
   
   fragment STRING_MID:;
   STRING_END
  -    :   '``' StringPart ( '"' | '``' { $type = STRING_MID; } (('`' ~'`') => '`')? )
  +    :   '``' StringPart ( '"' | '``' { $type = STRING_MID; } (('`' ~'`') => '`')?  | (EOF)=> )
       ;
   
   VERBATIM_STRING
  -    :	'"""' (~'"'|'"' ~'"'| '""' ~'"')* '"""' ('"' '"'?)?
  +    :	'"""' (~('"'|EOF) | '"' ~('"'|EOF) | '""' ~('"'|EOF))* ('"""' ('"' '"'?)? | (EOF)=> )
       ;
   
   /*
  
positive.code:     ;
  
  LINE_COMMENT
      :   ('//'|'#!') ~('\n'|'\r')*  ('\r\n' | '\r' | '\n')?
          {
              $channel = HIDDEN;
          }
  
negative.code: */
  fragment
  StringPart
      : ( ~('\\' | '"' | '`' | EOF) | ( ('`' ~'`') => '`' ) | EscapeSequence )*
      ;
  
  fragment
  EscapeSequence 
      :   '\\' 
          ( ~('{'|EOF) | '{' (~('}'|EOF))* '}' )
      ;
  
  WS  
  