// Note that many of these cases are also in a binder test, where the type comments apply. Diff the tests to see.
###
1
123456
123456789012345678901234567890
123456789012345678901234567890f
123456789012345678901234567890F
0123456
###
1.0
.5
1e3
1e+3
1e-3
.1e4
.123456789012345678901234567890
123456.789012345678901234567890
123456.789012345678901234567890E-6
1e308
1e309
.01e310
###
// REVIEW: these produce unhelpful bind errors. Better to produce lex errors?
.e3
5.
5.e3
###

// These should be u8.
0xFFFFFFFFFFFFFFFFu
0xFFFFFFFFFFFFFFFFU
18446744073709551615u
18446744073709551615U

// These should be i.
0xFFFFFFFFFFFFFFFF
18446744073709551615

0x8000000000000000
9223372036854775808

// These should be i8.
0x7FFFFFFFFFFFFFFF
9223372036854775807

// These should be i.
0x10000000000000000
0x10000000000000000U
18446744073709551616
18446744073709551616u

###
12345
12345f
12345U
255
255u
123.5u

1234.5
123.45
123e45
###
// REVIEW: these produce unhelpful bind errors. Better to produce lex errors?
123e+
123E-
123e
###
0x
0X
// REVIEW: these produce unhelpful bind errors. Better to produce lex errors?
0xABCDEFGH

###
1u
1U
1u1
1u2
1u4
1u8
1u3

1i
1i1
1i2
1i4
1i8
1ia
1i3

1l
1L

1ul
1uL
1Ul
1UL

1lu
1lU
1Lu
1LU
###
// REVIEW: these produce unhelpful bind errors. Better to produce lex errors?
1l2
1ul2
1lu2
###
1d
1f
1r4
1r8
1r
1r1
1r2
1r3

1a1
1d2
1f3

1ra

###
256u
256u1
256u2
256u4
256u8
256u3

256i
256i1
256i2
256i4
256i8
256ia
256i3

256d
256f
256r4
256r8
256r
256r1
256r2
256r3

256a1
256d2
256f3

###
256U
256U1
256U2
256U4
256U8
256U3

256I
256I1
256I2
256I4
256I8
256IA
256I3

256D
256F
256R4
256R8
256R
256R1
256R2
256R3

256A1
256D2
256F3

###
12.3u
12.3u1
12.3u2
12.3u4
12.3u8
12.3u3

12.3i
12.3i1
12.3i2
12.3i4
12.3i8
12.3ia
12.3i3

12.3d
12.3f
12.3r4
12.3r8
12.3r
12.3r1
12.3r2
12.3r3

1e400d
1e400f
2e100d
2e100f
2e100r4
2e100r8
2e100r

1e-400d
1e-400f
2e-100d
2e-100f
2e-100r4
2e-100r8
2e-100r

12.3a1
12.3d2
12.3f3

###
0xFFu
0xFFu1
0x7Fu1
0x80u1
0xFFu2
0xFFu4
0xFFu8
0xFFu3

0xFFi
0xFFi1
0x7Fi1
0x80i1
0xFFi2
0xFFi4
0xFFi8
0xFFia
0xFFi3

0xFFd
0xFFf
0xFFr4
0xFFr8
0xFFr
0xFFr1
0xFFr2
0xFFr3

0xFFa1
0xFFd2
0xFFf3

0xFFFFu
0xFFFFu1
0xFFFFu2
0x7FFFu2
0x8000u2
0xFFFFu4
0xFFFFu8

0xFFFFi
0xFFFFi1
0xFFFFi2
0x7FFFi2
0x8000i2
0xFFFFi4
0xFFFFi8
0xFFFFia

0xFFFFFFFFu
0xFFFFFFFFu1
0xFFFFFFFFu2
0xFFFFFFFFu4
0x7FFFFFFFu4
0x80000000u4
0xFFFFFFFFu8

0xFFFFFFFFi
0xFFFFFFFFi1
0xFFFFFFFFi2
0xFFFFFFFFi4
0x7FFFFFFFi4
0x80000000i4
0xFFFFFFFFi8
0xFFFFFFFFia

0xFFFFFFFFFFFFFFFFu
0xFFFFFFFFFFFFFFFFu1
0xFFFFFFFFFFFFFFFFu2
0xFFFFFFFFFFFFFFFFu4
0xFFFFFFFFFFFFFFFFu8
0x7FFFFFFFFFFFFFFFu8
0x8000000000000000u8
0xFFFFFFFFFFFFFFFFuL

0xFFFFFFFFFFFFFFFFi
0xFFFFFFFFFFFFFFFFi1
0xFFFFFFFFFFFFFFFFi2
0xFFFFFFFFFFFFFFFFi4
0xFFFFFFFFFFFFFFFFi8
0x7FFFFFFFFFFFFFFFi8
0x7FFFFFFFFFFFFFFFL
0x8000000000000000i8
0xFFFFFFFFFFFFFFFFia
0x8000000000000000L

// *** Digit separator
###
0xFFFF_FFFF_FFFF_FFFFi8
0xFF__FF
0x_FF_FF
0xFF_FF_

###
123_45_6789
123_
123_456.1_25
123_456_.1_25
123_456.1_25_
123_456e1_25
123_456_e1_25
123_456e1_25_
123___456.1_____25
123_456.1_25
// REVIEW: these produce unhelpful bind errors. Better to produce lex errors?
123_456._1_25
123_456e_1_25

###
0b1000
0B1000
0b1_0011
0b1__0011
0b_1000
0b1000_
// REVIEW: This might be useful for binary (supporting two adjacent _).
0b0001_0010_0011_0100__0101_0110_0111_1000__1001_1010_1011_1100__1101_1110_1111_0000
0b0001_0010_0011_0100_0101_0110_0111_1000_1001_1010_1011_1100_1101_1110_1111_0000
0b_0001_0010_0011_0100_0101_0110_0111_1000_1001_1010_1011_1100_1101_1110_1111_0000
0b0001_0010_0011_0100_0101_0110_0111_1000_1001_1010_1011_1100_1101_1110_1111_0000_

// *** Coverage
###
// REVIEW: these produce unhelpful bind errors. Better to produce lex errors?
1.0L
0b0101f
0b0101d
