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