1 /*
   2  * @test /nodynamiccopyright/
   3  * @bug 6860973
   4  * @summary Project Coin: underscores in literals
   5  *
   6  * @compile/fail/ref=BadUnderscoreLiterals.7.out -XDrawDiagnostics BadUnderscoreLiterals.java
   7  */
   8 
   9 public class BadUnderscoreLiterals {
  10     int valid = 1_1;            // valid literal
  11 
  12     // test zero
  13     int z1 = _0;                // valid (but undefined) variable
  14     int z2 = 0_;                // trailing underscore
  15 
  16     // test simple (decimal) integers
  17     int i1 = _1_2_3;            // valid (but undefined) variable
  18     int i2 = 1_2_3_;            // trailing underscore
  19 
  20     // test binary integers
  21     int b1 = 0b_0;              // leading underscore after radix
  22     int b2 = 0b0_;              // trailing underscore
  23 
  24     // test hexadecimal integers
  25     int x1 = 0x_0;              // leading underscore after radix
  26     int x2 = 0x0_;              // trailing underscore
  27 
  28     // test floating point numbers
  29     float f1 = 0_.1;            // trailing underscore before decimal point
  30     float f2 = 0._1;            // leading underscore after decimal point
  31     float f3 = 0.1_;            // trailing underscore
  32     float f4 = 0.1_e0;          // trailing underscore before exponent
  33     float f5 = 0e_1;            // leading underscore in exponent
  34     float f6 = 0e1_;            // trailing underscore in exponent
  35 
  36     // hexadecimal floating point
  37     float xf1 = 0x_0.1p0;       // leading underscore after radix
  38     float xf2 = 0x0_.1p0;       // trailing underscore before decimal point
  39     float xf3 = 0x0._1p0;       // leading underscore after decimal point
  40     float xf4 = 0x0.1_p0;       // trailing underscore before exponent
  41     float xf5 = 0x0p_1;         // leading underscore after exponent
  42     float xf6 = 0x0p1_;         // trailing underscore
  43 }
  44