anchor.diff:          |   HexIntegerLiteral
           |   OctalIntegerLiteral
           |   BinaryIntegerLiteral
  -        ) (Underscore { require(false, "Invalid number", -1, true); })?
  +        ) (Underscore { require(false, "Number ending with underscores is invalid", -1, true); })?
   
       // !!! Error Alternative !!!
       |   Zero ([0-9] { invalidDigitCount++; })+ { require(false, "Invalid octal number", -(invalidDigitCount + 1), true); } IntegerTypeSuffix?
  
positive.code: // Script-header comments.
  // The very first characters of the file may be "#!".  If so, ignore the first line.
  SH_COMMENT
      :   '#!' { 0 == this.tokenIndex }?<fail={"Shebang comment should appear at the first line"}> ~[\r\n\uFFFF]* -> skip
      ;
  
  // Unexpected characters will be handled by groovy parser later.
  
negative.code: FloatingPointLiteral
      :   (   DecimalFloatingPointLiteral
          |   HexadecimalFloatingPointLiteral
          ) (Underscore { require(false, "Number ending with underscores is invalid", -1, true); })?
      ;
  
  fragment
  