tint: Lex different tokens for float suffixes

Generate different tokens for:
• 'f' suffixed float literals
• unsuffixed integer literals

'f' and unsuffixed are currently both treated as f32 by the resolver,
but this is the first step to supporting abstract floats.

Bug: tint:1504
Change-Id: Id3b1fe420b6eb8901f88d6a5de06ef4f54aa3edf
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/89031
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: Dan Sinclair <dsinclair@chromium.org>
This commit is contained in:
Ben Clayton
2022-05-10 14:55:34 +00:00
committed by Dawn LUCI CQ
parent dd5947ff76
commit 41285aa578
31 changed files with 513 additions and 327 deletions

View File

@@ -25,8 +25,8 @@
%out_var_SV_TARGET = OpVariable %_ptr_Private_v4float Private %5
%void = OpTypeVoid
%8 = OpTypeFunction %void
%float_0x1_1p_128 = OpConstant %float 0x1.1p+128
%13 = OpConstantComposite %v4float %float_0x1_1p_128 %float_0x1_1p_128 %float_0x1_1p_128 %float_0x1_1p_128
%float_0x1_9p_128 = OpConstant %float 0x1.9p+128
%13 = OpConstantComposite %v4float %float_0x1_9p_128 %float_0x1_9p_128 %float_0x1_9p_128 %float_0x1_9p_128
%main_out = OpTypeStruct %v4float
%14 = OpTypeFunction %main_out
%main_1 = OpFunction %void None %8

View File

@@ -1,7 +1,7 @@
var<private> out_var_SV_TARGET : vec4<f32>;
fn main_1() {
out_var_SV_TARGET = vec4<f32>(0x1.1p+128, 0x1.1p+128, 0x1.1p+128, 0x1.1p+128);
out_var_SV_TARGET = vec4<f32>(0x1.9p+128, 0x1.9p+128, 0x1.9p+128, 0x1.9p+128);
return;
}