reader/wgsl: Lex underscore tokens
Bug: tint:1213
Change-Id: Ic5f2bfb2da0bf0f9511f029a93c7007266b2984c
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/67063
Commit-Queue: Ben Clayton <bclayton@google.com>
Kokoro: Ben Clayton <bclayton@google.com>
Reviewed-by: David Neto <dneto@google.com>
Reviewed-by: James Price <jrprice@google.com>
diff --git a/src/reader/wgsl/lexer.cc b/src/reader/wgsl/lexer.cc
index 5437286..700c33f 100644
--- a/src/reader/wgsl/lexer.cc
+++ b/src/reader/wgsl/lexer.cc
@@ -840,6 +840,10 @@
type = Token::Type::kTilde;
pos_ += 1;
location_.column += 1;
+ } else if (matches(pos_, "_")) {
+ type = Token::Type::kUnderscore;
+ pos_ += 1;
+ location_.column += 1;
} else if (matches(pos_, "^")) {
type = Token::Type::kXor;
pos_ += 1;
diff --git a/src/reader/wgsl/lexer_test.cc b/src/reader/wgsl/lexer_test.cc
index 24c5298..4c5e9b1 100644
--- a/src/reader/wgsl/lexer_test.cc
+++ b/src/reader/wgsl/lexer_test.cc
@@ -493,6 +493,7 @@
TokenData{";", Token::Type::kSemicolon},
TokenData{"*", Token::Type::kStar},
TokenData{"~", Token::Type::kTilde},
+ TokenData{"_", Token::Type::kUnderscore},
TokenData{"^", Token::Type::kXor}));
using KeywordTest = testing::TestWithParam<TokenData>;
diff --git a/src/reader/wgsl/token.cc b/src/reader/wgsl/token.cc
index 4e4a62c..2a625bb 100644
--- a/src/reader/wgsl/token.cc
+++ b/src/reader/wgsl/token.cc
@@ -106,6 +106,8 @@
return "*";
case Token::Type::kTilde:
return "~";
+ case Token::Type::kUnderscore:
+ return "_";
case Token::Type::kXor:
return "^";
diff --git a/src/reader/wgsl/token.h b/src/reader/wgsl/token.h
index de2b360..35c8f79 100644
--- a/src/reader/wgsl/token.h
+++ b/src/reader/wgsl/token.h
@@ -114,6 +114,8 @@
kStar,
/// A '~'
kTilde,
+ /// A '_'
+ kUnderscore,
/// A '^'
kXor,