| // Copyright 2022 The Tint Authors. |
| // |
| // Licensed under the Apache License, Version 2.0 (the "License"); |
| // you may not use this file except in compliance with the License. |
| // You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| // See the License for the specific language governing permissions and |
| // limitations under the License. |
| |
| //////////////////////////////////////////////////////////////////////////////// |
| // File generated by tools/src/cmd/gen |
| // using the template: |
| // src/tint/builtin/builtin.cc.tmpl |
| // |
| // Do not modify this file directly |
| //////////////////////////////////////////////////////////////////////////////// |
| |
| #include "src/tint/builtin/builtin.h" |
| |
| namespace tint::builtin { |
| |
| /// ParseBuiltin parses a Builtin from a string. |
| /// @param str the string to parse |
| /// @returns the parsed enum, or Builtin::kUndefined if the string could not be parsed. |
| Builtin ParseBuiltin(std::string_view str) { |
| if (str == "__packed_vec3") { |
| return Builtin::kPackedVec3; |
| } |
| if (str == "array") { |
| return Builtin::kArray; |
| } |
| if (str == "atomic") { |
| return Builtin::kAtomic; |
| } |
| if (str == "bool") { |
| return Builtin::kBool; |
| } |
| if (str == "f16") { |
| return Builtin::kF16; |
| } |
| if (str == "f32") { |
| return Builtin::kF32; |
| } |
| if (str == "i32") { |
| return Builtin::kI32; |
| } |
| if (str == "mat2x2") { |
| return Builtin::kMat2X2; |
| } |
| if (str == "mat2x2f") { |
| return Builtin::kMat2X2F; |
| } |
| if (str == "mat2x2h") { |
| return Builtin::kMat2X2H; |
| } |
| if (str == "mat2x3") { |
| return Builtin::kMat2X3; |
| } |
| if (str == "mat2x3f") { |
| return Builtin::kMat2X3F; |
| } |
| if (str == "mat2x3h") { |
| return Builtin::kMat2X3H; |
| } |
| if (str == "mat2x4") { |
| return Builtin::kMat2X4; |
| } |
| if (str == "mat2x4f") { |
| return Builtin::kMat2X4F; |
| } |
| if (str == "mat2x4h") { |
| return Builtin::kMat2X4H; |
| } |
| if (str == "mat3x2") { |
| return Builtin::kMat3X2; |
| } |
| if (str == "mat3x2f") { |
| return Builtin::kMat3X2F; |
| } |
| if (str == "mat3x2h") { |
| return Builtin::kMat3X2H; |
| } |
| if (str == "mat3x3") { |
| return Builtin::kMat3X3; |
| } |
| if (str == "mat3x3f") { |
| return Builtin::kMat3X3F; |
| } |
| if (str == "mat3x3h") { |
| return Builtin::kMat3X3H; |
| } |
| if (str == "mat3x4") { |
| return Builtin::kMat3X4; |
| } |
| if (str == "mat3x4f") { |
| return Builtin::kMat3X4F; |
| } |
| if (str == "mat3x4h") { |
| return Builtin::kMat3X4H; |
| } |
| if (str == "mat4x2") { |
| return Builtin::kMat4X2; |
| } |
| if (str == "mat4x2f") { |
| return Builtin::kMat4X2F; |
| } |
| if (str == "mat4x2h") { |
| return Builtin::kMat4X2H; |
| } |
| if (str == "mat4x3") { |
| return Builtin::kMat4X3; |
| } |
| if (str == "mat4x3f") { |
| return Builtin::kMat4X3F; |
| } |
| if (str == "mat4x3h") { |
| return Builtin::kMat4X3H; |
| } |
| if (str == "mat4x4") { |
| return Builtin::kMat4X4; |
| } |
| if (str == "mat4x4f") { |
| return Builtin::kMat4X4F; |
| } |
| if (str == "mat4x4h") { |
| return Builtin::kMat4X4H; |
| } |
| if (str == "ptr") { |
| return Builtin::kPtr; |
| } |
| if (str == "sampler") { |
| return Builtin::kSampler; |
| } |
| if (str == "sampler_comparison") { |
| return Builtin::kSamplerComparison; |
| } |
| if (str == "texture_1d") { |
| return Builtin::kTexture1D; |
| } |
| if (str == "texture_2d") { |
| return Builtin::kTexture2D; |
| } |
| if (str == "texture_2d_array") { |
| return Builtin::kTexture2DArray; |
| } |
| if (str == "texture_3d") { |
| return Builtin::kTexture3D; |
| } |
| if (str == "texture_cube") { |
| return Builtin::kTextureCube; |
| } |
| if (str == "texture_cube_array") { |
| return Builtin::kTextureCubeArray; |
| } |
| if (str == "texture_depth_2d") { |
| return Builtin::kTextureDepth2D; |
| } |
| if (str == "texture_depth_2d_array") { |
| return Builtin::kTextureDepth2DArray; |
| } |
| if (str == "texture_depth_cube") { |
| return Builtin::kTextureDepthCube; |
| } |
| if (str == "texture_depth_cube_array") { |
| return Builtin::kTextureDepthCubeArray; |
| } |
| if (str == "texture_depth_multisampled_2d") { |
| return Builtin::kTextureDepthMultisampled2D; |
| } |
| if (str == "texture_external") { |
| return Builtin::kTextureExternal; |
| } |
| if (str == "texture_multisampled_2d") { |
| return Builtin::kTextureMultisampled2D; |
| } |
| if (str == "texture_storage_1d") { |
| return Builtin::kTextureStorage1D; |
| } |
| if (str == "texture_storage_2d") { |
| return Builtin::kTextureStorage2D; |
| } |
| if (str == "texture_storage_2d_array") { |
| return Builtin::kTextureStorage2DArray; |
| } |
| if (str == "texture_storage_3d") { |
| return Builtin::kTextureStorage3D; |
| } |
| if (str == "u32") { |
| return Builtin::kU32; |
| } |
| if (str == "vec2") { |
| return Builtin::kVec2; |
| } |
| if (str == "vec2f") { |
| return Builtin::kVec2F; |
| } |
| if (str == "vec2h") { |
| return Builtin::kVec2H; |
| } |
| if (str == "vec2i") { |
| return Builtin::kVec2I; |
| } |
| if (str == "vec2u") { |
| return Builtin::kVec2U; |
| } |
| if (str == "vec3") { |
| return Builtin::kVec3; |
| } |
| if (str == "vec3f") { |
| return Builtin::kVec3F; |
| } |
| if (str == "vec3h") { |
| return Builtin::kVec3H; |
| } |
| if (str == "vec3i") { |
| return Builtin::kVec3I; |
| } |
| if (str == "vec3u") { |
| return Builtin::kVec3U; |
| } |
| if (str == "vec4") { |
| return Builtin::kVec4; |
| } |
| if (str == "vec4f") { |
| return Builtin::kVec4F; |
| } |
| if (str == "vec4h") { |
| return Builtin::kVec4H; |
| } |
| if (str == "vec4i") { |
| return Builtin::kVec4I; |
| } |
| if (str == "vec4u") { |
| return Builtin::kVec4U; |
| } |
| return Builtin::kUndefined; |
| } |
| |
| utils::StringStream& operator<<(utils::StringStream& out, Builtin value) { |
| switch (value) { |
| case Builtin::kUndefined: |
| return out << "undefined"; |
| case Builtin::kPackedVec3: |
| return out << "__packed_vec3"; |
| case Builtin::kArray: |
| return out << "array"; |
| case Builtin::kAtomic: |
| return out << "atomic"; |
| case Builtin::kBool: |
| return out << "bool"; |
| case Builtin::kF16: |
| return out << "f16"; |
| case Builtin::kF32: |
| return out << "f32"; |
| case Builtin::kI32: |
| return out << "i32"; |
| case Builtin::kMat2X2: |
| return out << "mat2x2"; |
| case Builtin::kMat2X2F: |
| return out << "mat2x2f"; |
| case Builtin::kMat2X2H: |
| return out << "mat2x2h"; |
| case Builtin::kMat2X3: |
| return out << "mat2x3"; |
| case Builtin::kMat2X3F: |
| return out << "mat2x3f"; |
| case Builtin::kMat2X3H: |
| return out << "mat2x3h"; |
| case Builtin::kMat2X4: |
| return out << "mat2x4"; |
| case Builtin::kMat2X4F: |
| return out << "mat2x4f"; |
| case Builtin::kMat2X4H: |
| return out << "mat2x4h"; |
| case Builtin::kMat3X2: |
| return out << "mat3x2"; |
| case Builtin::kMat3X2F: |
| return out << "mat3x2f"; |
| case Builtin::kMat3X2H: |
| return out << "mat3x2h"; |
| case Builtin::kMat3X3: |
| return out << "mat3x3"; |
| case Builtin::kMat3X3F: |
| return out << "mat3x3f"; |
| case Builtin::kMat3X3H: |
| return out << "mat3x3h"; |
| case Builtin::kMat3X4: |
| return out << "mat3x4"; |
| case Builtin::kMat3X4F: |
| return out << "mat3x4f"; |
| case Builtin::kMat3X4H: |
| return out << "mat3x4h"; |
| case Builtin::kMat4X2: |
| return out << "mat4x2"; |
| case Builtin::kMat4X2F: |
| return out << "mat4x2f"; |
| case Builtin::kMat4X2H: |
| return out << "mat4x2h"; |
| case Builtin::kMat4X3: |
| return out << "mat4x3"; |
| case Builtin::kMat4X3F: |
| return out << "mat4x3f"; |
| case Builtin::kMat4X3H: |
| return out << "mat4x3h"; |
| case Builtin::kMat4X4: |
| return out << "mat4x4"; |
| case Builtin::kMat4X4F: |
| return out << "mat4x4f"; |
| case Builtin::kMat4X4H: |
| return out << "mat4x4h"; |
| case Builtin::kPtr: |
| return out << "ptr"; |
| case Builtin::kSampler: |
| return out << "sampler"; |
| case Builtin::kSamplerComparison: |
| return out << "sampler_comparison"; |
| case Builtin::kTexture1D: |
| return out << "texture_1d"; |
| case Builtin::kTexture2D: |
| return out << "texture_2d"; |
| case Builtin::kTexture2DArray: |
| return out << "texture_2d_array"; |
| case Builtin::kTexture3D: |
| return out << "texture_3d"; |
| case Builtin::kTextureCube: |
| return out << "texture_cube"; |
| case Builtin::kTextureCubeArray: |
| return out << "texture_cube_array"; |
| case Builtin::kTextureDepth2D: |
| return out << "texture_depth_2d"; |
| case Builtin::kTextureDepth2DArray: |
| return out << "texture_depth_2d_array"; |
| case Builtin::kTextureDepthCube: |
| return out << "texture_depth_cube"; |
| case Builtin::kTextureDepthCubeArray: |
| return out << "texture_depth_cube_array"; |
| case Builtin::kTextureDepthMultisampled2D: |
| return out << "texture_depth_multisampled_2d"; |
| case Builtin::kTextureExternal: |
| return out << "texture_external"; |
| case Builtin::kTextureMultisampled2D: |
| return out << "texture_multisampled_2d"; |
| case Builtin::kTextureStorage1D: |
| return out << "texture_storage_1d"; |
| case Builtin::kTextureStorage2D: |
| return out << "texture_storage_2d"; |
| case Builtin::kTextureStorage2DArray: |
| return out << "texture_storage_2d_array"; |
| case Builtin::kTextureStorage3D: |
| return out << "texture_storage_3d"; |
| case Builtin::kU32: |
| return out << "u32"; |
| case Builtin::kVec2: |
| return out << "vec2"; |
| case Builtin::kVec2F: |
| return out << "vec2f"; |
| case Builtin::kVec2H: |
| return out << "vec2h"; |
| case Builtin::kVec2I: |
| return out << "vec2i"; |
| case Builtin::kVec2U: |
| return out << "vec2u"; |
| case Builtin::kVec3: |
| return out << "vec3"; |
| case Builtin::kVec3F: |
| return out << "vec3f"; |
| case Builtin::kVec3H: |
| return out << "vec3h"; |
| case Builtin::kVec3I: |
| return out << "vec3i"; |
| case Builtin::kVec3U: |
| return out << "vec3u"; |
| case Builtin::kVec4: |
| return out << "vec4"; |
| case Builtin::kVec4F: |
| return out << "vec4f"; |
| case Builtin::kVec4H: |
| return out << "vec4h"; |
| case Builtin::kVec4I: |
| return out << "vec4i"; |
| case Builtin::kVec4U: |
| return out << "vec4u"; |
| } |
| return out << "<unknown>"; |
| } |
| |
| } // namespace tint::builtin |