anchor.diff:  // Literals
   
   ByteLiteral // Can't end with b or B because of hex digits.
  -	  : DecimalLiteral ('y'|'Y')
  -      | HexLiteral ('y'|'Y')
  -      | BinaryLiteral ('y'|'Y')
  -      | OctalLiteral ('y'|'Y')    
  +	  : DecimalLiteral [yY]
  +      | HexLiteral [yY]
  +      | BinaryLiteral [yY]
  +      | OctalLiteral [yY]    
   	  ;
   UByteLiteral // Can't end with b or B because of hex digits.
  -	  : DecimalLiteral ('u'|'U')('y'|'Y')
  -      | HexLiteral ('u'|'U')('y'|'Y')
  -      | BinaryLiteral ('u'|'U')('y'|'Y')
  -      | OctalLiteral ('u'|'U')('y'|'Y')
  +	  : DecimalLiteral [uU][yY]
  +      | HexLiteral [uU][yY]
  +      | BinaryLiteral [uU][yY]
  +      | OctalLiteral [uU][yY]
   	  ;
   
   ShortLiteral
  -	  : DecimalLiteral ('s'|'S')
  -      | HexLiteral ('s'|'S')
  -      | BinaryLiteral ('s'|'S')
  -      | OctalLiteral ('s'|'S')    
  +	  : DecimalLiteral [sS]
  +      | HexLiteral [sS]
  +      | BinaryLiteral [sS]
  +      | OctalLiteral [sS]    
   	  ;
   	  
   UShortLiteral
  -	  : DecimalLiteral ('u'|'U')('s'|'S')
  -      | HexLiteral ('u'|'U')('s'|'S')
  -      | BinaryLiteral ('u'|'U')('s'|'S')
  -      | OctalLiteral ('u'|'U')('s'|'S')
  +	  : DecimalLiteral [uU][sS]
  +      | HexLiteral [uU][sS]
  +      | BinaryLiteral [uU][sS]
  +      | OctalLiteral [uU][sS]
         ;
   	  
   IntLiteral
  -	  : DecimalLiteral ('i'|'I')?
  -      | HexLiteral ('i'|'I')?
  -      | BinaryLiteral ('i'|'I')?
  -      | OctalLiteral ('i'|'I')?
  +	  : DecimalLiteral [iI]?
  +      | HexLiteral [iI]?
  +      | BinaryLiteral [iI]?
  +      | OctalLiteral [iI]?
         ;
   	  	  
   UIntLiteral
  -	  : DecimalLiteral ('u'|'U')('i'|'I')?
  -      | HexLiteral ('u'|'U')('i'|'I')?
  -      | BinaryLiteral ('u'|'U')('i'|'I')?
  -      | OctalLiteral ('u'|'U')('i'|'I')?
  +	  : DecimalLiteral [uU][iI]?
  +      | HexLiteral [uU][iI]?
  +      | BinaryLiteral [uU][iI]?
  +      | OctalLiteral [uU][iI]?
   	  ;
   	  
   LongLiteral
  -	  : DecimalLiteral ('l'|'L')
  -      | HexLiteral ('l'|'L')
  -      | BinaryLiteral ('l'|'L')
  -      | OctalLiteral ('l'|'L')      
  +	  : DecimalLiteral [lL]
  +      | HexLiteral [lL]
  +      | BinaryLiteral [lL]
  +      | OctalLiteral [lL]      
   	  ;
   	  
   ULongLiteral
  -	  : DecimalLiteral ('u'|'U')('l'|'L')
  -      | HexLiteral ('u'|'U')('l'|'L')
  -      | BinaryLiteral ('u'|'U')('l'|'L')
  -      | OctalLiteral ('u'|'U')('l'|'L')	
  +	  : DecimalLiteral [uU][lL]
  +      | HexLiteral [uU][lL]
  +      | BinaryLiteral [uU][lL]
  +      | OctalLiteral [uU][lL]	
   	  ;
   
   fragment
  
positive.code:     |   '\\' [0-7] [0-7]?
      |   '\\' [0-3] [0-7] [0-7]
      ;
  
  // Separators
  
  
negative.code: grammar Shadow;
  
  @header {
  package shadow.parse;
  }
  
  @lexer::members {    
  