Commit 29324e6f39
Changed files (1)
lib
std
lib/std/zig/tokenizer.zig
@@ -1696,216 +1696,215 @@ test "correctly parse pointer assignment" {
}
test "tokenizer - number literals decimal" {
- testTokenize("1", &[_]Token.Id{ .IntegerLiteral });
- testTokenize("2", &[_]Token.Id{ .IntegerLiteral });
- testTokenize("3", &[_]Token.Id{ .IntegerLiteral });
- testTokenize("4", &[_]Token.Id{ .IntegerLiteral });
- testTokenize("5", &[_]Token.Id{ .IntegerLiteral });
- testTokenize("6", &[_]Token.Id{ .IntegerLiteral });
- testTokenize("7", &[_]Token.Id{ .IntegerLiteral });
- testTokenize("8", &[_]Token.Id{ .IntegerLiteral });
- testTokenize("9", &[_]Token.Id{ .IntegerLiteral });
- testTokenize("0a", &[_]Token.Id{ .Invalid });
- testTokenize("9b", &[_]Token.Id{ .Invalid });
- testTokenize("1z", &[_]Token.Id{ .Invalid });
- testTokenize("1z_1", &[_]Token.Id{ .Invalid });
- testTokenize("9z3", &[_]Token.Id{ .Invalid });
-
- testTokenize("0_0", &[_]Token.Id{ .IntegerLiteral });
- testTokenize("0001", &[_]Token.Id{ .IntegerLiteral });
- testTokenize("01234567890", &[_]Token.Id{ .IntegerLiteral });
- testTokenize("012_345_6789_0", &[_]Token.Id{ .IntegerLiteral });
- testTokenize("0_1_2_3_4_5_6_7_8_9_0", &[_]Token.Id{ .IntegerLiteral });
-
- testTokenize("00_", &[_]Token.Id{ .Invalid });
- testTokenize("0_0_", &[_]Token.Id{ .Invalid });
- testTokenize("0__0", &[_]Token.Id{ .Invalid });
- testTokenize("0_0f", &[_]Token.Id{ .Invalid });
- testTokenize("0_0_f", &[_]Token.Id{ .Invalid });
- testTokenize("1_,", &[_]Token.Id{ .Invalid });
-
- testTokenize("1.", &[_]Token.Id{ .FloatLiteral });
- testTokenize("0.0", &[_]Token.Id{ .FloatLiteral });
- testTokenize("1.0", &[_]Token.Id{ .FloatLiteral });
- testTokenize("10.0", &[_]Token.Id{ .FloatLiteral });
- testTokenize("1e0", &[_]Token.Id{ .FloatLiteral });
- testTokenize("1e100", &[_]Token.Id{ .FloatLiteral });
- testTokenize("1.e100", &[_]Token.Id{ .FloatLiteral });
- testTokenize("1.0e100", &[_]Token.Id{ .FloatLiteral });
- testTokenize("1.0e+100", &[_]Token.Id{ .FloatLiteral });
- testTokenize("1.0e-100", &[_]Token.Id{ .FloatLiteral });
- testTokenize("1_0_0_0.0_0_0_0_0_1e1_0_0_0", &[_]Token.Id{ .FloatLiteral });
-
- testTokenize("1e", &[_]Token.Id{ .Invalid });
- testTokenize("1.0e1f0", &[_]Token.Id{ .Invalid });
- testTokenize("1.0p100", &[_]Token.Id{ .Invalid });
+ testTokenize("0", &[_]Token.Id{.IntegerLiteral});
+ testTokenize("1", &[_]Token.Id{.IntegerLiteral});
+ testTokenize("2", &[_]Token.Id{.IntegerLiteral});
+ testTokenize("3", &[_]Token.Id{.IntegerLiteral});
+ testTokenize("4", &[_]Token.Id{.IntegerLiteral});
+ testTokenize("5", &[_]Token.Id{.IntegerLiteral});
+ testTokenize("6", &[_]Token.Id{.IntegerLiteral});
+ testTokenize("7", &[_]Token.Id{.IntegerLiteral});
+ testTokenize("8", &[_]Token.Id{.IntegerLiteral});
+ testTokenize("9", &[_]Token.Id{.IntegerLiteral});
+ testTokenize("0a", &[_]Token.Id{.Invalid});
+ testTokenize("9b", &[_]Token.Id{.Invalid});
+ testTokenize("1z", &[_]Token.Id{.Invalid});
+ testTokenize("1z_1", &[_]Token.Id{.Invalid});
+ testTokenize("9z3", &[_]Token.Id{.Invalid});
+
+ testTokenize("0_0", &[_]Token.Id{.IntegerLiteral});
+ testTokenize("0001", &[_]Token.Id{.IntegerLiteral});
+ testTokenize("01234567890", &[_]Token.Id{.IntegerLiteral});
+ testTokenize("012_345_6789_0", &[_]Token.Id{.IntegerLiteral});
+ testTokenize("0_1_2_3_4_5_6_7_8_9_0", &[_]Token.Id{.IntegerLiteral});
+
+ testTokenize("00_", &[_]Token.Id{.Invalid});
+ testTokenize("0_0_", &[_]Token.Id{.Invalid});
+ testTokenize("0__0", &[_]Token.Id{.Invalid});
+ testTokenize("0_0f", &[_]Token.Id{.Invalid});
+ testTokenize("0_0_f", &[_]Token.Id{.Invalid});
+ testTokenize("1_,", &[_]Token.Id{.Invalid});
+
+ testTokenize("1.", &[_]Token.Id{.FloatLiteral});
+ testTokenize("0.0", &[_]Token.Id{.FloatLiteral});
+ testTokenize("1.0", &[_]Token.Id{.FloatLiteral});
+ testTokenize("10.0", &[_]Token.Id{.FloatLiteral});
+ testTokenize("1e0", &[_]Token.Id{.FloatLiteral});
+ testTokenize("1e100", &[_]Token.Id{.FloatLiteral});
+ testTokenize("1.e100", &[_]Token.Id{.FloatLiteral});
+ testTokenize("1.0e100", &[_]Token.Id{.FloatLiteral});
+ testTokenize("1.0e+100", &[_]Token.Id{.FloatLiteral});
+ testTokenize("1.0e-100", &[_]Token.Id{.FloatLiteral});
+ testTokenize("1_0_0_0.0_0_0_0_0_1e1_0_0_0", &[_]Token.Id{.FloatLiteral});
+
+ testTokenize("1e", &[_]Token.Id{.Invalid});
+ testTokenize("1.0e1f0", &[_]Token.Id{.Invalid});
+ testTokenize("1.0p100", &[_]Token.Id{.Invalid});
testTokenize("1.0p-100", &[_]Token.Id{ .Invalid, .Minus, .IntegerLiteral });
- testTokenize("1.0p1f0", &[_]Token.Id{ .Invalid });
- testTokenize("1.0_,", &[_]Token.Id{ .Invalid });
- testTokenize("1.0e,", &[_]Token.Id{ .Invalid });
+ testTokenize("1.0p1f0", &[_]Token.Id{.Invalid});
+ testTokenize("1.0_,", &[_]Token.Id{.Invalid});
+ testTokenize("1.0e,", &[_]Token.Id{.Invalid});
}
-
test "tokenizer - number literals binary" {
- testTokenize("0b0", &[_]Token.Id{ .IntegerLiteral });
- testTokenize("0b1", &[_]Token.Id{ .IntegerLiteral });
- testTokenize("0b2", &[_]Token.Id{ .Invalid });
- testTokenize("0b3", &[_]Token.Id{ .Invalid });
- testTokenize("0b4", &[_]Token.Id{ .Invalid });
- testTokenize("0b5", &[_]Token.Id{ .Invalid });
- testTokenize("0b6", &[_]Token.Id{ .Invalid });
- testTokenize("0b7", &[_]Token.Id{ .Invalid });
- testTokenize("0b8", &[_]Token.Id{ .Invalid });
- testTokenize("0b9", &[_]Token.Id{ .Invalid });
- testTokenize("0ba", &[_]Token.Id{ .Invalid });
- testTokenize("0bb", &[_]Token.Id{ .Invalid });
- testTokenize("0bc", &[_]Token.Id{ .Invalid });
- testTokenize("0bd", &[_]Token.Id{ .Invalid });
- testTokenize("0be", &[_]Token.Id{ .Invalid });
- testTokenize("0bf", &[_]Token.Id{ .Invalid });
- testTokenize("0bz", &[_]Token.Id{ .Invalid });
-
- testTokenize("0b0000_0000", &[_]Token.Id{ .IntegerLiteral });
- testTokenize("0b1111_1111", &[_]Token.Id{ .IntegerLiteral });
- testTokenize("0b10_10_10_10", &[_]Token.Id{ .IntegerLiteral });
- testTokenize("0b0_1_0_1_0_1_0_1", &[_]Token.Id{ .IntegerLiteral });
+ testTokenize("0b0", &[_]Token.Id{.IntegerLiteral});
+ testTokenize("0b1", &[_]Token.Id{.IntegerLiteral});
+ testTokenize("0b2", &[_]Token.Id{.Invalid});
+ testTokenize("0b3", &[_]Token.Id{.Invalid});
+ testTokenize("0b4", &[_]Token.Id{.Invalid});
+ testTokenize("0b5", &[_]Token.Id{.Invalid});
+ testTokenize("0b6", &[_]Token.Id{.Invalid});
+ testTokenize("0b7", &[_]Token.Id{.Invalid});
+ testTokenize("0b8", &[_]Token.Id{.Invalid});
+ testTokenize("0b9", &[_]Token.Id{.Invalid});
+ testTokenize("0ba", &[_]Token.Id{.Invalid});
+ testTokenize("0bb", &[_]Token.Id{.Invalid});
+ testTokenize("0bc", &[_]Token.Id{.Invalid});
+ testTokenize("0bd", &[_]Token.Id{.Invalid});
+ testTokenize("0be", &[_]Token.Id{.Invalid});
+ testTokenize("0bf", &[_]Token.Id{.Invalid});
+ testTokenize("0bz", &[_]Token.Id{.Invalid});
+
+ testTokenize("0b0000_0000", &[_]Token.Id{.IntegerLiteral});
+ testTokenize("0b1111_1111", &[_]Token.Id{.IntegerLiteral});
+ testTokenize("0b10_10_10_10", &[_]Token.Id{.IntegerLiteral});
+ testTokenize("0b0_1_0_1_0_1_0_1", &[_]Token.Id{.IntegerLiteral});
testTokenize("0b1.", &[_]Token.Id{ .IntegerLiteral, .Period });
testTokenize("0b1.0", &[_]Token.Id{ .IntegerLiteral, .Period, .IntegerLiteral });
- testTokenize("0B0", &[_]Token.Id{ .Invalid });
- testTokenize("0b_", &[_]Token.Id{ .Invalid });
- testTokenize("0b_0", &[_]Token.Id{ .Invalid });
- testTokenize("0b1_", &[_]Token.Id{ .Invalid });
- testTokenize("0b0__1", &[_]Token.Id{ .Invalid });
- testTokenize("0b0_1_", &[_]Token.Id{ .Invalid });
- testTokenize("0b1e", &[_]Token.Id{ .Invalid });
- testTokenize("0b1p", &[_]Token.Id{ .Invalid });
- testTokenize("0b1e0", &[_]Token.Id{ .Invalid });
- testTokenize("0b1p0", &[_]Token.Id{ .Invalid });
- testTokenize("0b1_,", &[_]Token.Id{ .Invalid });
+ testTokenize("0B0", &[_]Token.Id{.Invalid});
+ testTokenize("0b_", &[_]Token.Id{.Invalid});
+ testTokenize("0b_0", &[_]Token.Id{.Invalid});
+ testTokenize("0b1_", &[_]Token.Id{.Invalid});
+ testTokenize("0b0__1", &[_]Token.Id{.Invalid});
+ testTokenize("0b0_1_", &[_]Token.Id{.Invalid});
+ testTokenize("0b1e", &[_]Token.Id{.Invalid});
+ testTokenize("0b1p", &[_]Token.Id{.Invalid});
+ testTokenize("0b1e0", &[_]Token.Id{.Invalid});
+ testTokenize("0b1p0", &[_]Token.Id{.Invalid});
+ testTokenize("0b1_,", &[_]Token.Id{.Invalid});
}
test "tokenizer - number literals octal" {
- testTokenize("0o0", &[_]Token.Id{ .IntegerLiteral });
- testTokenize("0o1", &[_]Token.Id{ .IntegerLiteral });
- testTokenize("0o2", &[_]Token.Id{ .IntegerLiteral });
- testTokenize("0o3", &[_]Token.Id{ .IntegerLiteral });
- testTokenize("0o4", &[_]Token.Id{ .IntegerLiteral });
- testTokenize("0o5", &[_]Token.Id{ .IntegerLiteral });
- testTokenize("0o6", &[_]Token.Id{ .IntegerLiteral });
- testTokenize("0o7", &[_]Token.Id{ .IntegerLiteral });
- testTokenize("0o8", &[_]Token.Id{ .Invalid });
- testTokenize("0o9", &[_]Token.Id{ .Invalid });
- testTokenize("0oa", &[_]Token.Id{ .Invalid });
- testTokenize("0ob", &[_]Token.Id{ .Invalid });
- testTokenize("0oc", &[_]Token.Id{ .Invalid });
- testTokenize("0od", &[_]Token.Id{ .Invalid });
- testTokenize("0oe", &[_]Token.Id{ .Invalid });
- testTokenize("0of", &[_]Token.Id{ .Invalid });
- testTokenize("0oz", &[_]Token.Id{ .Invalid });
-
- testTokenize("0o01234567", &[_]Token.Id{ .IntegerLiteral });
- testTokenize("0o0123_4567", &[_]Token.Id{ .IntegerLiteral });
- testTokenize("0o01_23_45_67", &[_]Token.Id{ .IntegerLiteral });
- testTokenize("0o0_1_2_3_4_5_6_7", &[_]Token.Id{ .IntegerLiteral });
+ testTokenize("0o0", &[_]Token.Id{.IntegerLiteral});
+ testTokenize("0o1", &[_]Token.Id{.IntegerLiteral});
+ testTokenize("0o2", &[_]Token.Id{.IntegerLiteral});
+ testTokenize("0o3", &[_]Token.Id{.IntegerLiteral});
+ testTokenize("0o4", &[_]Token.Id{.IntegerLiteral});
+ testTokenize("0o5", &[_]Token.Id{.IntegerLiteral});
+ testTokenize("0o6", &[_]Token.Id{.IntegerLiteral});
+ testTokenize("0o7", &[_]Token.Id{.IntegerLiteral});
+ testTokenize("0o8", &[_]Token.Id{.Invalid});
+ testTokenize("0o9", &[_]Token.Id{.Invalid});
+ testTokenize("0oa", &[_]Token.Id{.Invalid});
+ testTokenize("0ob", &[_]Token.Id{.Invalid});
+ testTokenize("0oc", &[_]Token.Id{.Invalid});
+ testTokenize("0od", &[_]Token.Id{.Invalid});
+ testTokenize("0oe", &[_]Token.Id{.Invalid});
+ testTokenize("0of", &[_]Token.Id{.Invalid});
+ testTokenize("0oz", &[_]Token.Id{.Invalid});
+
+ testTokenize("0o01234567", &[_]Token.Id{.IntegerLiteral});
+ testTokenize("0o0123_4567", &[_]Token.Id{.IntegerLiteral});
+ testTokenize("0o01_23_45_67", &[_]Token.Id{.IntegerLiteral});
+ testTokenize("0o0_1_2_3_4_5_6_7", &[_]Token.Id{.IntegerLiteral});
testTokenize("0o7.", &[_]Token.Id{ .IntegerLiteral, .Period });
testTokenize("0o7.0", &[_]Token.Id{ .IntegerLiteral, .Period, .IntegerLiteral });
- testTokenize("0O0", &[_]Token.Id{ .Invalid });
- testTokenize("0o_", &[_]Token.Id{ .Invalid });
- testTokenize("0o_0", &[_]Token.Id{ .Invalid });
- testTokenize("0o1_", &[_]Token.Id{ .Invalid });
- testTokenize("0o0__1", &[_]Token.Id{ .Invalid });
- testTokenize("0o0_1_", &[_]Token.Id{ .Invalid });
- testTokenize("0o1e", &[_]Token.Id{ .Invalid });
- testTokenize("0o1p", &[_]Token.Id{ .Invalid });
- testTokenize("0o1e0", &[_]Token.Id{ .Invalid });
- testTokenize("0o1p0", &[_]Token.Id{ .Invalid });
- testTokenize("0o_,", &[_]Token.Id{ .Invalid });
+ testTokenize("0O0", &[_]Token.Id{.Invalid});
+ testTokenize("0o_", &[_]Token.Id{.Invalid});
+ testTokenize("0o_0", &[_]Token.Id{.Invalid});
+ testTokenize("0o1_", &[_]Token.Id{.Invalid});
+ testTokenize("0o0__1", &[_]Token.Id{.Invalid});
+ testTokenize("0o0_1_", &[_]Token.Id{.Invalid});
+ testTokenize("0o1e", &[_]Token.Id{.Invalid});
+ testTokenize("0o1p", &[_]Token.Id{.Invalid});
+ testTokenize("0o1e0", &[_]Token.Id{.Invalid});
+ testTokenize("0o1p0", &[_]Token.Id{.Invalid});
+ testTokenize("0o_,", &[_]Token.Id{.Invalid});
}
test "tokenizer - number literals hexadeciaml" {
- testTokenize("0x0", &[_]Token.Id{ .IntegerLiteral });
- testTokenize("0x1", &[_]Token.Id{ .IntegerLiteral });
- testTokenize("0x2", &[_]Token.Id{ .IntegerLiteral });
- testTokenize("0x3", &[_]Token.Id{ .IntegerLiteral });
- testTokenize("0x4", &[_]Token.Id{ .IntegerLiteral });
- testTokenize("0x5", &[_]Token.Id{ .IntegerLiteral });
- testTokenize("0x6", &[_]Token.Id{ .IntegerLiteral });
- testTokenize("0x7", &[_]Token.Id{ .IntegerLiteral });
- testTokenize("0x8", &[_]Token.Id{ .IntegerLiteral });
- testTokenize("0x9", &[_]Token.Id{ .IntegerLiteral });
- testTokenize("0xa", &[_]Token.Id{ .IntegerLiteral });
- testTokenize("0xb", &[_]Token.Id{ .IntegerLiteral });
- testTokenize("0xc", &[_]Token.Id{ .IntegerLiteral });
- testTokenize("0xd", &[_]Token.Id{ .IntegerLiteral });
- testTokenize("0xe", &[_]Token.Id{ .IntegerLiteral });
- testTokenize("0xf", &[_]Token.Id{ .IntegerLiteral });
- testTokenize("0xA", &[_]Token.Id{ .IntegerLiteral });
- testTokenize("0xB", &[_]Token.Id{ .IntegerLiteral });
- testTokenize("0xC", &[_]Token.Id{ .IntegerLiteral });
- testTokenize("0xD", &[_]Token.Id{ .IntegerLiteral });
- testTokenize("0xE", &[_]Token.Id{ .IntegerLiteral });
- testTokenize("0xF", &[_]Token.Id{ .IntegerLiteral });
- testTokenize("0x0z", &[_]Token.Id{ .Invalid });
- testTokenize("0xz", &[_]Token.Id{ .Invalid });
-
- testTokenize("0x0123456789ABCDEF", &[_]Token.Id{ .IntegerLiteral });
- testTokenize("0x0123_4567_89AB_CDEF", &[_]Token.Id{ .IntegerLiteral });
- testTokenize("0x01_23_45_67_89AB_CDE_F", &[_]Token.Id{ .IntegerLiteral });
- testTokenize("0x0_1_2_3_4_5_6_7_8_9_A_B_C_D_E_F", &[_]Token.Id{ .IntegerLiteral });
-
- testTokenize("0X0", &[_]Token.Id{ .Invalid });
- testTokenize("0x_", &[_]Token.Id{ .Invalid });
- testTokenize("0x_1", &[_]Token.Id{ .Invalid });
- testTokenize("0x1_", &[_]Token.Id{ .Invalid });
- testTokenize("0x0__1", &[_]Token.Id{ .Invalid });
- testTokenize("0x0_1_", &[_]Token.Id{ .Invalid });
- testTokenize("0x_,", &[_]Token.Id{ .Invalid });
-
- testTokenize("0x1.", &[_]Token.Id{ .FloatLiteral });
- testTokenize("0x1.0", &[_]Token.Id{ .FloatLiteral });
- testTokenize("0xF.", &[_]Token.Id{ .FloatLiteral });
- testTokenize("0xF.0", &[_]Token.Id{ .FloatLiteral });
- testTokenize("0xF.F", &[_]Token.Id{ .FloatLiteral });
- testTokenize("0xF.Fp0", &[_]Token.Id{ .FloatLiteral });
- testTokenize("0xF.FP0", &[_]Token.Id{ .FloatLiteral });
- testTokenize("0x1p0", &[_]Token.Id{ .FloatLiteral });
- testTokenize("0xfp0", &[_]Token.Id{ .FloatLiteral });
-
- testTokenize("0x0123456.789ABCDEF", &[_]Token.Id{ .FloatLiteral });
- testTokenize("0x0_123_456.789_ABC_DEF", &[_]Token.Id{ .FloatLiteral });
- testTokenize("0x0_1_2_3_4_5_6.7_8_9_A_B_C_D_E_F", &[_]Token.Id{ .FloatLiteral });
- testTokenize("0x0.0p0", &[_]Token.Id{ .FloatLiteral });
- testTokenize("0xff.ffp10", &[_]Token.Id{ .FloatLiteral });
- testTokenize("0xff.ffP10", &[_]Token.Id{ .FloatLiteral });
- testTokenize("0xff.p10", &[_]Token.Id{ .FloatLiteral });
- testTokenize("0xffp10", &[_]Token.Id{ .FloatLiteral });
- testTokenize("0xff_ff.ff_ffp1_0_0_0", &[_]Token.Id{ .FloatLiteral });
- testTokenize("0xf_f_f_f.f_f_f_fp+1_000", &[_]Token.Id{ .FloatLiteral });
- testTokenize("0xf_f_f_f.f_f_f_fp-1_00_0", &[_]Token.Id{ .FloatLiteral });
-
- testTokenize("0x1e", &[_]Token.Id{ .IntegerLiteral });
- testTokenize("0x1e0", &[_]Token.Id{ .IntegerLiteral });
- testTokenize("0x1p", &[_]Token.Id{ .Invalid });
- testTokenize("0xfp0z1", &[_]Token.Id{ .Invalid });
- testTokenize("0xff.ffpff", &[_]Token.Id{ .Invalid });
- testTokenize("0x0_.0", &[_]Token.Id{ .Invalid });
- testTokenize("0x0._0", &[_]Token.Id{ .Invalid });
- testTokenize("0x0.0_", &[_]Token.Id{ .Invalid });
- testTokenize("0x0_p0", &[_]Token.Id{ .Invalid });
- testTokenize("0x0_.p0", &[_]Token.Id{ .Invalid });
- testTokenize("0x0._p0", &[_]Token.Id{ .Invalid });
- testTokenize("0x0.0_p0", &[_]Token.Id{ .Invalid });
- testTokenize("0x0._0p0", &[_]Token.Id{ .Invalid });
- testTokenize("0x0.0_p0", &[_]Token.Id{ .Invalid });
- testTokenize("0x0.0p_0", &[_]Token.Id{ .Invalid });
- testTokenize("0x0.0p+_0", &[_]Token.Id{ .Invalid });
- testTokenize("0x0.0p-_0", &[_]Token.Id{ .Invalid });
- testTokenize("0x0.0p0_", &[_]Token.Id{ .Invalid });
+ testTokenize("0x0", &[_]Token.Id{.IntegerLiteral});
+ testTokenize("0x1", &[_]Token.Id{.IntegerLiteral});
+ testTokenize("0x2", &[_]Token.Id{.IntegerLiteral});
+ testTokenize("0x3", &[_]Token.Id{.IntegerLiteral});
+ testTokenize("0x4", &[_]Token.Id{.IntegerLiteral});
+ testTokenize("0x5", &[_]Token.Id{.IntegerLiteral});
+ testTokenize("0x6", &[_]Token.Id{.IntegerLiteral});
+ testTokenize("0x7", &[_]Token.Id{.IntegerLiteral});
+ testTokenize("0x8", &[_]Token.Id{.IntegerLiteral});
+ testTokenize("0x9", &[_]Token.Id{.IntegerLiteral});
+ testTokenize("0xa", &[_]Token.Id{.IntegerLiteral});
+ testTokenize("0xb", &[_]Token.Id{.IntegerLiteral});
+ testTokenize("0xc", &[_]Token.Id{.IntegerLiteral});
+ testTokenize("0xd", &[_]Token.Id{.IntegerLiteral});
+ testTokenize("0xe", &[_]Token.Id{.IntegerLiteral});
+ testTokenize("0xf", &[_]Token.Id{.IntegerLiteral});
+ testTokenize("0xA", &[_]Token.Id{.IntegerLiteral});
+ testTokenize("0xB", &[_]Token.Id{.IntegerLiteral});
+ testTokenize("0xC", &[_]Token.Id{.IntegerLiteral});
+ testTokenize("0xD", &[_]Token.Id{.IntegerLiteral});
+ testTokenize("0xE", &[_]Token.Id{.IntegerLiteral});
+ testTokenize("0xF", &[_]Token.Id{.IntegerLiteral});
+ testTokenize("0x0z", &[_]Token.Id{.Invalid});
+ testTokenize("0xz", &[_]Token.Id{.Invalid});
+
+ testTokenize("0x0123456789ABCDEF", &[_]Token.Id{.IntegerLiteral});
+ testTokenize("0x0123_4567_89AB_CDEF", &[_]Token.Id{.IntegerLiteral});
+ testTokenize("0x01_23_45_67_89AB_CDE_F", &[_]Token.Id{.IntegerLiteral});
+ testTokenize("0x0_1_2_3_4_5_6_7_8_9_A_B_C_D_E_F", &[_]Token.Id{.IntegerLiteral});
+
+ testTokenize("0X0", &[_]Token.Id{.Invalid});
+ testTokenize("0x_", &[_]Token.Id{.Invalid});
+ testTokenize("0x_1", &[_]Token.Id{.Invalid});
+ testTokenize("0x1_", &[_]Token.Id{.Invalid});
+ testTokenize("0x0__1", &[_]Token.Id{.Invalid});
+ testTokenize("0x0_1_", &[_]Token.Id{.Invalid});
+ testTokenize("0x_,", &[_]Token.Id{.Invalid});
+
+ testTokenize("0x1.", &[_]Token.Id{.FloatLiteral});
+ testTokenize("0x1.0", &[_]Token.Id{.FloatLiteral});
+ testTokenize("0xF.", &[_]Token.Id{.FloatLiteral});
+ testTokenize("0xF.0", &[_]Token.Id{.FloatLiteral});
+ testTokenize("0xF.F", &[_]Token.Id{.FloatLiteral});
+ testTokenize("0xF.Fp0", &[_]Token.Id{.FloatLiteral});
+ testTokenize("0xF.FP0", &[_]Token.Id{.FloatLiteral});
+ testTokenize("0x1p0", &[_]Token.Id{.FloatLiteral});
+ testTokenize("0xfp0", &[_]Token.Id{.FloatLiteral});
+
+ testTokenize("0x0123456.789ABCDEF", &[_]Token.Id{.FloatLiteral});
+ testTokenize("0x0_123_456.789_ABC_DEF", &[_]Token.Id{.FloatLiteral});
+ testTokenize("0x0_1_2_3_4_5_6.7_8_9_A_B_C_D_E_F", &[_]Token.Id{.FloatLiteral});
+ testTokenize("0x0.0p0", &[_]Token.Id{.FloatLiteral});
+ testTokenize("0xff.ffp10", &[_]Token.Id{.FloatLiteral});
+ testTokenize("0xff.ffP10", &[_]Token.Id{.FloatLiteral});
+ testTokenize("0xff.p10", &[_]Token.Id{.FloatLiteral});
+ testTokenize("0xffp10", &[_]Token.Id{.FloatLiteral});
+ testTokenize("0xff_ff.ff_ffp1_0_0_0", &[_]Token.Id{.FloatLiteral});
+ testTokenize("0xf_f_f_f.f_f_f_fp+1_000", &[_]Token.Id{.FloatLiteral});
+ testTokenize("0xf_f_f_f.f_f_f_fp-1_00_0", &[_]Token.Id{.FloatLiteral});
+
+ testTokenize("0x1e", &[_]Token.Id{.IntegerLiteral});
+ testTokenize("0x1e0", &[_]Token.Id{.IntegerLiteral});
+ testTokenize("0x1p", &[_]Token.Id{.Invalid});
+ testTokenize("0xfp0z1", &[_]Token.Id{.Invalid});
+ testTokenize("0xff.ffpff", &[_]Token.Id{.Invalid});
+ testTokenize("0x0_.0", &[_]Token.Id{.Invalid});
+ testTokenize("0x0._0", &[_]Token.Id{.Invalid});
+ testTokenize("0x0.0_", &[_]Token.Id{.Invalid});
+ testTokenize("0x0_p0", &[_]Token.Id{.Invalid});
+ testTokenize("0x0_.p0", &[_]Token.Id{.Invalid});
+ testTokenize("0x0._p0", &[_]Token.Id{.Invalid});
+ testTokenize("0x0.0_p0", &[_]Token.Id{.Invalid});
+ testTokenize("0x0._0p0", &[_]Token.Id{.Invalid});
+ testTokenize("0x0.0_p0", &[_]Token.Id{.Invalid});
+ testTokenize("0x0.0p_0", &[_]Token.Id{.Invalid});
+ testTokenize("0x0.0p+_0", &[_]Token.Id{.Invalid});
+ testTokenize("0x0.0p-_0", &[_]Token.Id{.Invalid});
+ testTokenize("0x0.0p0_", &[_]Token.Id{.Invalid});
}
-
fn testTokenize(source: []const u8, expected_tokens: []const Token.Id) void {
var tokenizer = Tokenizer.init(source);
for (expected_tokens) |expected_token_id| {