anchor.diff:  
   
   // §3.10.5 String Literals
  -
   StringLiteral
  -    :   '"'      DqStringCharacter*?           '"'
  -    |   '\''     SqStringCharacter*?           '\''
  +    :   GStringQuotationMark    DqStringCharacter*? GStringQuotationMark
  +    |   SqStringQuotationMark   SqStringCharacter*? SqStringQuotationMark
   
       |   Slash      { this.isRegexAllowed() && _input.LA(1) != '*' }?
                    SlashyStringCharacter+?       Slash
   
  -    |   TdqStringQuotationMark    TdqStringCharacter*?          TdqStringQuotationMark
  -    |   TsqStringQuotationMark TsqStringCharacter*?          TsqStringQuotationMark
  -    |   DollarSlashyGStringQuotationMarkBegin     DollarSlashyStringCharacter+? DollarSlashyGStringQuotationMarkEnd
  +    |   TdqStringQuotationMark  TdqStringCharacter*?    TdqStringQuotationMark
  +    |   TsqStringQuotationMark  TsqStringCharacter*?    TsqStringQuotationMark
  +    |   DollarSlashyGStringQuotationMarkBegin   DollarSlashyStringCharacter+?   DollarSlashyGStringQuotationMarkEnd
       ;
   
   // Groovy gstring
   GStringBegin
  -    :   '"' DqStringCharacter*? Dollar -> pushMode(DQ_GSTRING_MODE), pushMode(GSTRING_TYPE_SELECTOR_MODE)
  +    :   GStringQuotationMark DqStringCharacter*? Dollar -> pushMode(DQ_GSTRING_MODE), pushMode(GSTRING_TYPE_SELECTOR_MODE)
       ;
   TdqGStringBegin
       :   TdqStringQuotationMark   TdqStringCharacter*? Dollar -> type(GStringBegin), pushMode(TDQ_GSTRING_MODE), pushMode(GSTRING_TYPE_SELECTOR_MODE)
  
positive.code: 
  mode DQ_GSTRING_MODE;
  GStringEnd
      :   '"'     -> popMode
      ;
  GStringPart
      :   Dollar  -> pushMode(GSTRING_TYPE_SELECTOR_MODE)
  
negative.code: fragment
  Dollar
      :   '$'
      ;
  
  fragment
  GStringQuotationMark
      :   '"'
      ;
  
  fragment
  SqStringQuotationMark
      :   '\''
      ;
  
  fragment
  