wsgl parser: Use match() for more trivial patterns

Keeps error message consistent. Reduces code.

Bug: tint:282
Change-Id: I75ac50ef4a2435cfd42e95e851fa1f3524d1dd63
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/31733
Reviewed-by: dan sinclair <dsinclair@chromium.org>
Commit-Queue: dan sinclair <dsinclair@chromium.org>
diff --git a/src/reader/wgsl/parser_impl.cc b/src/reader/wgsl/parser_impl.cc
index e7b49a4..fc28af3 100644
--- a/src/reader/wgsl/parser_impl.cc
+++ b/src/reader/wgsl/parser_impl.cc
@@ -432,11 +432,8 @@
 //  | BINDING PAREN_LEFT INT_LITERAL PAREN_RIGHT
 //  | SET INT PAREN_LEFT_LITERAL PAREN_RIGHT
 std::unique_ptr<ast::VariableDecoration> ParserImpl::variable_decoration() {
-  auto t = peek();
-  auto source = t.source();
-  if (t.IsLocation()) {
-    next();  // consume the peek
-
+  Source source;
+  if (match(Token::Type::kLocation, &source)) {
     const char* use = "location decoration";
 
     if (!expect(use, Token::Type::kParenLeft))
@@ -451,9 +448,7 @@
 
     return std::make_unique<ast::LocationDecoration>(val, source);
   }
-  if (t.IsBuiltin()) {
-    next();  // consume the peek
-
+  if (match(Token::Type::kBuiltin, &source)) {
     if (!expect("builtin decoration", Token::Type::kParenLeft))
       return nullptr;
 
@@ -472,9 +467,7 @@
 
     return std::make_unique<ast::BuiltinDecoration>(builtin, source);
   }
-  if (t.IsBinding()) {
-    next();  // consume the peek
-
+  if (match(Token::Type::kBinding, &source)) {
     const char* use = "binding decoration";
 
     if (!expect(use, Token::Type::kParenLeft))
@@ -489,9 +482,7 @@
 
     return std::make_unique<ast::BindingDecoration>(val, source);
   }
-  if (t.IsSet()) {
-    next();  // consume the peek
-
+  if (match(Token::Type::kSet, &source)) {
     const char* use = "set decoration";
 
     if (!expect(use, Token::Type::kParenLeft))
@@ -635,17 +626,14 @@
 //  : SAMPLER
 //  | SAMPLER_COMPARISON
 ast::type::Type* ParserImpl::sampler_type() {
-  auto t = peek();
-  if (t.IsSampler()) {
-    next();  // Consume the peek
+  if (match(Token::Type::kSampler))
     return ctx_.type_mgr().Get(std::make_unique<ast::type::SamplerType>(
         ast::type::SamplerKind::kSampler));
-  }
-  if (t.IsComparisonSampler()) {
-    next();  // Consume the peek
+
+  if (match(Token::Type::kComparisonSampler))
     return ctx_.type_mgr().Get(std::make_unique<ast::type::SamplerType>(
         ast::type::SamplerKind::kComparisonSampler));
-  }
+
   return nullptr;
 }
 
@@ -658,46 +646,36 @@
 //  | TEXTURE_SAMPLED_CUBE
 //  | TEXTURE_SAMPLED_CUBE_ARRAY
 ast::type::TextureDimension ParserImpl::sampled_texture_type() {
-  auto t = peek();
-  if (t.IsTextureSampled1d()) {
-    next();  // Consume the peek
+  if (match(Token::Type::kTextureSampled1d))
     return ast::type::TextureDimension::k1d;
-  }
-  if (t.IsTextureSampled1dArray()) {
-    next();  // Consume the peek
+
+  if (match(Token::Type::kTextureSampled1dArray))
     return ast::type::TextureDimension::k1dArray;
-  }
-  if (t.IsTextureSampled2d()) {
-    next();  // Consume the peek
+
+  if (match(Token::Type::kTextureSampled2d))
     return ast::type::TextureDimension::k2d;
-  }
-  if (t.IsTextureSampled2dArray()) {
-    next();  // Consume the peek
+
+  if (match(Token::Type::kTextureSampled2dArray))
     return ast::type::TextureDimension::k2dArray;
-  }
-  if (t.IsTextureSampled3d()) {
-    next();  // Consume the peek
+
+  if (match(Token::Type::kTextureSampled3d))
     return ast::type::TextureDimension::k3d;
-  }
-  if (t.IsTextureSampledCube()) {
-    next();  // Consume the peek
+
+  if (match(Token::Type::kTextureSampledCube))
     return ast::type::TextureDimension::kCube;
-  }
-  if (t.IsTextureSampledCubeArray()) {
-    next();  // Consume the peek
+
+  if (match(Token::Type::kTextureSampledCubeArray))
     return ast::type::TextureDimension::kCubeArray;
-  }
+
   return ast::type::TextureDimension::kNone;
 }
 
 // multisampled_texture_type
 //  : TEXTURE_MULTISAMPLED_2D
 ast::type::TextureDimension ParserImpl::multisampled_texture_type() {
-  auto t = peek();
-  if (t.IsTextureMultisampled2d()) {
-    next();  // Consume the peek
+  if (match(Token::Type::kTextureMultisampled2d))
     return ast::type::TextureDimension::k2d;
-  }
+
   return ast::type::TextureDimension::kNone;
 }
 
@@ -714,51 +692,40 @@
 //  | TEXTURE_WO_3D
 std::pair<ast::type::TextureDimension, ast::AccessControl>
 ParserImpl::storage_texture_type() {
-  auto t = peek();
-  if (t.IsTextureStorageReadonly1d()) {
-    next();  // Consume the peek
+  if (match(Token::Type::kTextureStorageReadonly1d))
     return {ast::type::TextureDimension::k1d, ast::AccessControl::kReadOnly};
-  }
-  if (t.IsTextureStorageReadonly1dArray()) {
-    next();  // Consume the peek
+
+  if (match(Token::Type::kTextureStorageReadonly1dArray))
     return {ast::type::TextureDimension::k1dArray,
             ast::AccessControl::kReadOnly};
-  }
-  if (t.IsTextureStorageReadonly2d()) {
-    next();  // Consume the peek
+
+  if (match(Token::Type::kTextureStorageReadonly2d))
     return {ast::type::TextureDimension::k2d, ast::AccessControl::kReadOnly};
-  }
-  if (t.IsTextureStorageReadonly2dArray()) {
-    next();  // Consume the peek
+
+  if (match(Token::Type::kTextureStorageReadonly2dArray))
     return {ast::type::TextureDimension::k2dArray,
             ast::AccessControl::kReadOnly};
-  }
-  if (t.IsTextureStorageReadonly3d()) {
-    next();  // Consume the peek
+
+  if (match(Token::Type::kTextureStorageReadonly3d))
     return {ast::type::TextureDimension::k3d, ast::AccessControl::kReadOnly};
-  }
-  if (t.IsTextureStorageWriteonly1d()) {
-    next();  // Consume the peek
+
+  if (match(Token::Type::kTextureStorageWriteonly1d))
     return {ast::type::TextureDimension::k1d, ast::AccessControl::kWriteOnly};
-  }
-  if (t.IsTextureStorageWriteonly1dArray()) {
-    next();  // Consume the peek
+
+  if (match(Token::Type::kTextureStorageWriteonly1dArray))
     return {ast::type::TextureDimension::k1dArray,
             ast::AccessControl::kWriteOnly};
-  }
-  if (t.IsTextureStorageWriteonly2d()) {
-    next();  // Consume the peek
+
+  if (match(Token::Type::kTextureStorageWriteonly2d))
     return {ast::type::TextureDimension::k2d, ast::AccessControl::kWriteOnly};
-  }
-  if (t.IsTextureStorageWriteonly2dArray()) {
-    next();  // Consume the peek
+
+  if (match(Token::Type::kTextureStorageWriteonly2dArray))
     return {ast::type::TextureDimension::k2dArray,
             ast::AccessControl::kWriteOnly};
-  }
-  if (t.IsTextureStorageWriteonly3d()) {
-    next();  // Consume the peek
+
+  if (match(Token::Type::kTextureStorageWriteonly3d))
     return {ast::type::TextureDimension::k3d, ast::AccessControl::kWriteOnly};
-  }
+
   return {ast::type::TextureDimension::kNone, ast::AccessControl::kReadOnly};
 }
 
@@ -768,27 +735,22 @@
 //  | TEXTURE_DEPTH_CUBE
 //  | TEXTURE_DEPTH_CUBE_ARRAY
 ast::type::Type* ParserImpl::depth_texture_type() {
-  auto t = peek();
-  if (t.IsTextureDepth2d()) {
-    next();  // Consume the peek
+  if (match(Token::Type::kTextureDepth2d))
     return ctx_.type_mgr().Get(std::make_unique<ast::type::DepthTextureType>(
         ast::type::TextureDimension::k2d));
-  }
-  if (t.IsTextureDepth2dArray()) {
-    next();  // Consume the peek
+
+  if (match(Token::Type::kTextureDepth2dArray))
     return ctx_.type_mgr().Get(std::make_unique<ast::type::DepthTextureType>(
         ast::type::TextureDimension::k2dArray));
-  }
-  if (t.IsTextureDepthCube()) {
-    next();  // Consume the peek
+
+  if (match(Token::Type::kTextureDepthCube))
     return ctx_.type_mgr().Get(std::make_unique<ast::type::DepthTextureType>(
         ast::type::TextureDimension::kCube));
-  }
-  if (t.IsTextureDepthCubeArray()) {
-    next();  // Consume the peek
+
+  if (match(Token::Type::kTextureDepthCubeArray))
     return ctx_.type_mgr().Get(std::make_unique<ast::type::DepthTextureType>(
         ast::type::TextureDimension::kCubeArray));
-  }
+
   return nullptr;
 }
 
@@ -829,147 +791,111 @@
 //  | RGBA32SINT
 //  | RGBA32FLOAT
 ast::type::ImageFormat ParserImpl::image_storage_type() {
-  auto t = peek();
-  if (t.IsFormatR8Unorm()) {
-    next();  // Consume the peek
+  if (match(Token::Type::kFormatR8Unorm))
     return ast::type::ImageFormat::kR8Unorm;
-  }
-  if (t.IsFormatR8Snorm()) {
-    next();  // Consume the peek
+
+  if (match(Token::Type::kFormatR8Snorm))
     return ast::type::ImageFormat::kR8Snorm;
-  }
-  if (t.IsFormatR8Uint()) {
-    next();  // Consume the peek
+
+  if (match(Token::Type::kFormatR8Uint))
     return ast::type::ImageFormat::kR8Uint;
-  }
-  if (t.IsFormatR8Sint()) {
-    next();  // Consume the peek
+
+  if (match(Token::Type::kFormatR8Sint))
     return ast::type::ImageFormat::kR8Sint;
-  }
-  if (t.IsFormatR16Uint()) {
-    next();  // Consume the peek
+
+  if (match(Token::Type::kFormatR16Uint))
     return ast::type::ImageFormat::kR16Uint;
-  }
-  if (t.IsFormatR16Sint()) {
-    next();  // Consume the peek
+
+  if (match(Token::Type::kFormatR16Sint))
     return ast::type::ImageFormat::kR16Sint;
-  }
-  if (t.IsFormatR16Float()) {
-    next();  // Consume the peek
+
+  if (match(Token::Type::kFormatR16Float))
     return ast::type::ImageFormat::kR16Float;
-  }
-  if (t.IsFormatRg8Unorm()) {
-    next();  // Consume the peek
+
+  if (match(Token::Type::kFormatRg8Unorm))
     return ast::type::ImageFormat::kRg8Unorm;
-  }
-  if (t.IsFormatRg8Snorm()) {
-    next();  // Consume the peek
+
+  if (match(Token::Type::kFormatRg8Snorm))
     return ast::type::ImageFormat::kRg8Snorm;
-  }
-  if (t.IsFormatRg8Uint()) {
-    next();  // Consume the peek
+
+  if (match(Token::Type::kFormatRg8Uint))
     return ast::type::ImageFormat::kRg8Uint;
-  }
-  if (t.IsFormatRg8Sint()) {
-    next();  // Consume the peek
+
+  if (match(Token::Type::kFormatRg8Sint))
     return ast::type::ImageFormat::kRg8Sint;
-  }
-  if (t.IsFormatR32Uint()) {
-    next();  // Consume the peek
+
+  if (match(Token::Type::kFormatR32Uint))
     return ast::type::ImageFormat::kR32Uint;
-  }
-  if (t.IsFormatR32Sint()) {
-    next();  // Consume the peek
+
+  if (match(Token::Type::kFormatR32Sint))
     return ast::type::ImageFormat::kR32Sint;
-  }
-  if (t.IsFormatR32Float()) {
-    next();  // Consume the peek
+
+  if (match(Token::Type::kFormatR32Float))
     return ast::type::ImageFormat::kR32Float;
-  }
-  if (t.IsFormatRg16Uint()) {
-    next();  // Consume the peek
+
+  if (match(Token::Type::kFormatRg16Uint))
     return ast::type::ImageFormat::kRg16Uint;
-  }
-  if (t.IsFormatRg16Sint()) {
-    next();  // Consume the peek
+
+  if (match(Token::Type::kFormatRg16Sint))
     return ast::type::ImageFormat::kRg16Sint;
-  }
-  if (t.IsFormatRg16Float()) {
-    next();  // Consume the peek
+
+  if (match(Token::Type::kFormatRg16Float))
     return ast::type::ImageFormat::kRg16Float;
-  }
-  if (t.IsFormatRgba8Unorm()) {
-    next();  // Consume the peek
+
+  if (match(Token::Type::kFormatRgba8Unorm))
     return ast::type::ImageFormat::kRgba8Unorm;
-  }
-  if (t.IsFormatRgba8UnormSrgb()) {
-    next();  // Consume the peek
+
+  if (match(Token::Type::kFormatRgba8UnormSrgb))
     return ast::type::ImageFormat::kRgba8UnormSrgb;
-  }
-  if (t.IsFormatRgba8Snorm()) {
-    next();  // Consume the peek
+
+  if (match(Token::Type::kFormatRgba8Snorm))
     return ast::type::ImageFormat::kRgba8Snorm;
-  }
-  if (t.IsFormatRgba8Uint()) {
-    next();  // Consume the peek
+
+  if (match(Token::Type::kFormatRgba8Uint))
     return ast::type::ImageFormat::kRgba8Uint;
-  }
-  if (t.IsFormatRgba8Sint()) {
-    next();  // Consume the peek
+
+  if (match(Token::Type::kFormatRgba8Sint))
     return ast::type::ImageFormat::kRgba8Sint;
-  }
-  if (t.IsFormatBgra8Unorm()) {
-    next();  // Consume the peek
+
+  if (match(Token::Type::kFormatBgra8Unorm))
     return ast::type::ImageFormat::kBgra8Unorm;
-  }
-  if (t.IsFormatBgra8UnormSrgb()) {
-    next();  // Consume the peek
+
+  if (match(Token::Type::kFormatBgra8UnormSrgb))
     return ast::type::ImageFormat::kBgra8UnormSrgb;
-  }
-  if (t.IsFormatRgb10A2Unorm()) {
-    next();  // Consume the peek
+
+  if (match(Token::Type::kFormatRgb10A2Unorm))
     return ast::type::ImageFormat::kRgb10A2Unorm;
-  }
-  if (t.IsFormatRg11B10Float()) {
-    next();  // Consume the peek
+
+  if (match(Token::Type::kFormatRg11B10Float))
     return ast::type::ImageFormat::kRg11B10Float;
-  }
-  if (t.IsFormatRg32Uint()) {
-    next();  // Consume the peek
+
+  if (match(Token::Type::kFormatRg32Uint))
     return ast::type::ImageFormat::kRg32Uint;
-  }
-  if (t.IsFormatRg32Sint()) {
-    next();  // Consume the peek
+
+  if (match(Token::Type::kFormatRg32Sint))
     return ast::type::ImageFormat::kRg32Sint;
-  }
-  if (t.IsFormatRg32Float()) {
-    next();  // Consume the peek
+
+  if (match(Token::Type::kFormatRg32Float))
     return ast::type::ImageFormat::kRg32Float;
-  }
-  if (t.IsFormatRgba16Uint()) {
-    next();  // Consume the peek
+
+  if (match(Token::Type::kFormatRgba16Uint))
     return ast::type::ImageFormat::kRgba16Uint;
-  }
-  if (t.IsFormatRgba16Sint()) {
-    next();  // Consume the peek
+
+  if (match(Token::Type::kFormatRgba16Sint))
     return ast::type::ImageFormat::kRgba16Sint;
-  }
-  if (t.IsFormatRgba16Float()) {
-    next();  // Consume the peek
+
+  if (match(Token::Type::kFormatRgba16Float))
     return ast::type::ImageFormat::kRgba16Float;
-  }
-  if (t.IsFormatRgba32Uint()) {
-    next();  // Consume the peek
+
+  if (match(Token::Type::kFormatRgba32Uint))
     return ast::type::ImageFormat::kRgba32Uint;
-  }
-  if (t.IsFormatRgba32Sint()) {
-    next();  // Consume the peek
+
+  if (match(Token::Type::kFormatRgba32Sint))
     return ast::type::ImageFormat::kRgba32Sint;
-  }
-  if (t.IsFormatRgba32Float()) {
-    next();  // Consume the peek
+
+  if (match(Token::Type::kFormatRgba32Float))
     return ast::type::ImageFormat::kRgba32Float;
-  }
+
   return ast::type::ImageFormat::kNone;
 }