tint/reader/wgsl: Lex 'const'
The parser doesn't consume this yet. Bug: tint:1580 Change-Id: I3e78a7fdd1bd6b2a4fb4b52379a8ccc9a05869a3 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/94325 Kokoro: Kokoro <noreply+kokoro@google.com> Reviewed-by: Dan Sinclair <dsinclair@chromium.org> Commit-Queue: Ben Clayton <bclayton@chromium.org>
This commit is contained in:
parent
194c1776d3
commit
e021566617
|
@ -1088,6 +1088,9 @@ Token Lexer::check_keyword(const Source& source, std::string_view str) {
|
|||
if (str == "case") {
|
||||
return {Token::Type::kCase, source, "case"};
|
||||
}
|
||||
if (str == "const") {
|
||||
return {Token::Type::kConst, source, "const"};
|
||||
}
|
||||
if (str == "continue") {
|
||||
return {Token::Type::kContinue, source, "continue"};
|
||||
}
|
||||
|
|
|
@ -930,6 +930,7 @@ INSTANTIATE_TEST_SUITE_P(
|
|||
TokenData{"bool", Token::Type::kBool},
|
||||
TokenData{"break", Token::Type::kBreak},
|
||||
TokenData{"case", Token::Type::kCase},
|
||||
TokenData{"const", Token::Type::kConst},
|
||||
TokenData{"continue", Token::Type::kContinue},
|
||||
TokenData{"continuing", Token::Type::kContinuing},
|
||||
TokenData{"default", Token::Type::kDefault},
|
||||
|
|
|
@ -124,10 +124,10 @@ const char kWorkgroupSizeAttribute[] = "workgroup_size";
|
|||
|
||||
// https://gpuweb.github.io/gpuweb/wgsl.html#reserved-keywords
|
||||
bool is_reserved(Token t) {
|
||||
return t == "asm" || t == "bf16" || t == "const" || t == "do" || t == "enum" || t == "f64" ||
|
||||
t == "handle" || t == "i8" || t == "i16" || t == "i64" || t == "mat" ||
|
||||
t == "premerge" || t == "regardless" || t == "typedef" || t == "u8" || t == "u16" ||
|
||||
t == "u64" || t == "unless" || t == "using" || t == "vec" || t == "void" || t == "while";
|
||||
return t == "asm" || t == "bf16" || t == "do" || t == "enum" || t == "f64" || t == "handle" ||
|
||||
t == "i8" || t == "i16" || t == "i64" || t == "mat" || t == "premerge" ||
|
||||
t == "regardless" || t == "typedef" || t == "u8" || t == "u16" || t == "u64" ||
|
||||
t == "unless" || t == "using" || t == "vec" || t == "void" || t == "while";
|
||||
}
|
||||
|
||||
/// Enter-exit counters for block token types.
|
||||
|
|
|
@ -85,7 +85,6 @@ INSTANTIATE_TEST_SUITE_P(ParserImplReservedKeywordTest,
|
|||
ParserImplReservedKeywordTest,
|
||||
testing::Values("asm",
|
||||
"bf16",
|
||||
"const",
|
||||
"do",
|
||||
"enum",
|
||||
"f64",
|
||||
|
|
|
@ -141,6 +141,8 @@ std::string_view Token::TypeToName(Type type) {
|
|||
return "break";
|
||||
case Token::Type::kCase:
|
||||
return "case";
|
||||
case Token::Type::kConst:
|
||||
return "const";
|
||||
case Token::Type::kContinue:
|
||||
return "continue";
|
||||
case Token::Type::kContinuing:
|
||||
|
|
|
@ -151,6 +151,8 @@ class Token {
|
|||
kBreak,
|
||||
/// A 'case'
|
||||
kCase,
|
||||
/// A 'const'
|
||||
kConst,
|
||||
/// A 'continue'
|
||||
kContinue,
|
||||
/// A 'continuing'
|
||||
|
|
Loading…
Reference in New Issue