John Kessenich | e01a9bc | 2016-03-12 20:11:22 -0700 | [diff] [blame] | 1 | // |
John Kessenich | 927608b | 2017-01-06 12:34:14 -0700 | [diff] [blame] | 2 | // Copyright (C) 2016 Google, Inc. |
| 3 | // Copyright (C) 2016 LunarG, Inc. |
John Kessenich | e01a9bc | 2016-03-12 20:11:22 -0700 | [diff] [blame] | 4 | // |
John Kessenich | 927608b | 2017-01-06 12:34:14 -0700 | [diff] [blame] | 5 | // All rights reserved. |
John Kessenich | e01a9bc | 2016-03-12 20:11:22 -0700 | [diff] [blame] | 6 | // |
John Kessenich | 927608b | 2017-01-06 12:34:14 -0700 | [diff] [blame] | 7 | // Redistribution and use in source and binary forms, with or without |
| 8 | // modification, are permitted provided that the following conditions |
| 9 | // are met: |
John Kessenich | e01a9bc | 2016-03-12 20:11:22 -0700 | [diff] [blame] | 10 | // |
| 11 | // Redistributions of source code must retain the above copyright |
| 12 | // notice, this list of conditions and the following disclaimer. |
| 13 | // |
| 14 | // Redistributions in binary form must reproduce the above |
| 15 | // copyright notice, this list of conditions and the following |
| 16 | // disclaimer in the documentation and/or other materials provided |
| 17 | // with the distribution. |
| 18 | // |
| 19 | // Neither the name of Google, Inc., nor the names of its |
| 20 | // contributors may be used to endorse or promote products derived |
| 21 | // from this software without specific prior written permission. |
| 22 | // |
John Kessenich | 927608b | 2017-01-06 12:34:14 -0700 | [diff] [blame] | 23 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
| 24 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
| 25 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS |
| 26 | // FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE |
| 27 | // COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, |
| 28 | // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, |
| 29 | // BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
| 30 | // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER |
| 31 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
| 32 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN |
| 33 | // ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
| 34 | // POSSIBILITY OF SUCH DAMAGE. |
John Kessenich | e01a9bc | 2016-03-12 20:11:22 -0700 | [diff] [blame] | 35 | // |
| 36 | |
| 37 | #ifndef EHLSLTOKENS_H_ |
| 38 | #define EHLSLTOKENS_H_ |
| 39 | |
| 40 | namespace glslang { |
| 41 | |
| 42 | enum EHlslTokenClass { |
| 43 | EHTokNone = 0, |
| 44 | |
| 45 | // qualifiers |
| 46 | EHTokStatic, |
| 47 | EHTokConst, |
| 48 | EHTokSNorm, |
| 49 | EHTokUnorm, |
| 50 | EHTokExtern, |
| 51 | EHTokUniform, |
| 52 | EHTokVolatile, |
John Kessenich | 630dd7d | 2016-06-12 23:52:12 -0600 | [diff] [blame] | 53 | EHTokPrecise, |
John Kessenich | e01a9bc | 2016-03-12 20:11:22 -0700 | [diff] [blame] | 54 | EHTokShared, |
| 55 | EHTokGroupShared, |
| 56 | EHTokLinear, |
| 57 | EHTokCentroid, |
| 58 | EHTokNointerpolation, |
| 59 | EHTokNoperspective, |
| 60 | EHTokSample, |
| 61 | EHTokRowMajor, |
| 62 | EHTokColumnMajor, |
| 63 | EHTokPackOffset, |
LoopDawg | 9249c70 | 2016-07-12 20:44:32 -0600 | [diff] [blame] | 64 | EHTokIn, |
| 65 | EHTokOut, |
| 66 | EHTokInOut, |
John Kessenich | b9e3912 | 2016-08-17 10:22:08 -0600 | [diff] [blame] | 67 | EHTokLayout, |
steve-lunarg | 5da1f03 | 2017-02-12 17:50:28 -0700 | [diff] [blame] | 68 | EHTokGloballyCoherent, |
John Kessenich | 36b218d | 2017-03-15 09:05:14 -0600 | [diff] [blame] | 69 | EHTokInline, |
John Kessenich | e01a9bc | 2016-03-12 20:11:22 -0700 | [diff] [blame] | 70 | |
steve-lunarg | f49cdf4 | 2016-11-17 15:04:20 -0700 | [diff] [blame] | 71 | // primitive types |
| 72 | EHTokPoint, |
| 73 | EHTokLine, |
| 74 | EHTokTriangle, |
| 75 | EHTokLineAdj, |
| 76 | EHTokTriangleAdj, |
| 77 | |
| 78 | // stream out types |
| 79 | EHTokPointStream, |
| 80 | EHTokLineStream, |
| 81 | EHTokTriangleStream, |
| 82 | |
steve-lunarg | 858c928 | 2017-01-07 08:54:10 -0700 | [diff] [blame] | 83 | // Tessellation patches |
| 84 | EHTokInputPatch, |
| 85 | EHTokOutputPatch, |
| 86 | |
John Kessenich | e01a9bc | 2016-03-12 20:11:22 -0700 | [diff] [blame] | 87 | // template types |
| 88 | EHTokBuffer, |
| 89 | EHTokVector, |
| 90 | EHTokMatrix, |
| 91 | |
| 92 | // scalar types |
| 93 | EHTokVoid, |
John Kessenich | a1e2d49 | 2016-09-20 13:22:58 -0600 | [diff] [blame] | 94 | EHTokString, |
John Kessenich | e01a9bc | 2016-03-12 20:11:22 -0700 | [diff] [blame] | 95 | EHTokBool, |
| 96 | EHTokInt, |
| 97 | EHTokUint, |
| 98 | EHTokDword, |
| 99 | EHTokHalf, |
| 100 | EHTokFloat, |
| 101 | EHTokDouble, |
| 102 | EHTokMin16float, |
| 103 | EHTokMin10float, |
| 104 | EHTokMin16int, |
| 105 | EHTokMin12int, |
| 106 | EHTokMin16uint, |
| 107 | |
| 108 | // vector types |
| 109 | EHTokBool1, |
| 110 | EHTokBool2, |
| 111 | EHTokBool3, |
| 112 | EHTokBool4, |
| 113 | EHTokFloat1, |
| 114 | EHTokFloat2, |
| 115 | EHTokFloat3, |
| 116 | EHTokFloat4, |
| 117 | EHTokInt1, |
| 118 | EHTokInt2, |
| 119 | EHTokInt3, |
| 120 | EHTokInt4, |
| 121 | EHTokDouble1, |
| 122 | EHTokDouble2, |
| 123 | EHTokDouble3, |
| 124 | EHTokDouble4, |
| 125 | EHTokUint1, |
| 126 | EHTokUint2, |
| 127 | EHTokUint3, |
| 128 | EHTokUint4, |
steve-lunarg | 5ca85ad | 2016-12-26 18:45:52 -0700 | [diff] [blame] | 129 | EHTokHalf1, |
| 130 | EHTokHalf2, |
| 131 | EHTokHalf3, |
| 132 | EHTokHalf4, |
steve-lunarg | 3226b08 | 2016-10-26 19:18:55 -0600 | [diff] [blame] | 133 | EHTokMin16float1, |
| 134 | EHTokMin16float2, |
| 135 | EHTokMin16float3, |
| 136 | EHTokMin16float4, |
| 137 | EHTokMin10float1, |
| 138 | EHTokMin10float2, |
| 139 | EHTokMin10float3, |
| 140 | EHTokMin10float4, |
| 141 | EHTokMin16int1, |
| 142 | EHTokMin16int2, |
| 143 | EHTokMin16int3, |
| 144 | EHTokMin16int4, |
| 145 | EHTokMin12int1, |
| 146 | EHTokMin12int2, |
| 147 | EHTokMin12int3, |
| 148 | EHTokMin12int4, |
| 149 | EHTokMin16uint1, |
| 150 | EHTokMin16uint2, |
| 151 | EHTokMin16uint3, |
| 152 | EHTokMin16uint4, |
John Kessenich | e01a9bc | 2016-03-12 20:11:22 -0700 | [diff] [blame] | 153 | |
| 154 | // matrix types |
| 155 | EHTokInt1x1, |
| 156 | EHTokInt1x2, |
| 157 | EHTokInt1x3, |
| 158 | EHTokInt1x4, |
| 159 | EHTokInt2x1, |
| 160 | EHTokInt2x2, |
| 161 | EHTokInt2x3, |
| 162 | EHTokInt2x4, |
| 163 | EHTokInt3x1, |
| 164 | EHTokInt3x2, |
| 165 | EHTokInt3x3, |
| 166 | EHTokInt3x4, |
| 167 | EHTokInt4x1, |
| 168 | EHTokInt4x2, |
| 169 | EHTokInt4x3, |
| 170 | EHTokInt4x4, |
John Kessenich | 71351de | 2016-06-08 12:50:56 -0600 | [diff] [blame] | 171 | EHTokUint1x1, |
| 172 | EHTokUint1x2, |
| 173 | EHTokUint1x3, |
| 174 | EHTokUint1x4, |
| 175 | EHTokUint2x1, |
| 176 | EHTokUint2x2, |
| 177 | EHTokUint2x3, |
| 178 | EHTokUint2x4, |
| 179 | EHTokUint3x1, |
| 180 | EHTokUint3x2, |
| 181 | EHTokUint3x3, |
| 182 | EHTokUint3x4, |
| 183 | EHTokUint4x1, |
| 184 | EHTokUint4x2, |
| 185 | EHTokUint4x3, |
| 186 | EHTokUint4x4, |
| 187 | EHTokBool1x1, |
| 188 | EHTokBool1x2, |
| 189 | EHTokBool1x3, |
| 190 | EHTokBool1x4, |
| 191 | EHTokBool2x1, |
| 192 | EHTokBool2x2, |
| 193 | EHTokBool2x3, |
| 194 | EHTokBool2x4, |
| 195 | EHTokBool3x1, |
| 196 | EHTokBool3x2, |
| 197 | EHTokBool3x3, |
| 198 | EHTokBool3x4, |
| 199 | EHTokBool4x1, |
| 200 | EHTokBool4x2, |
| 201 | EHTokBool4x3, |
| 202 | EHTokBool4x4, |
John Kessenich | e01a9bc | 2016-03-12 20:11:22 -0700 | [diff] [blame] | 203 | EHTokFloat1x1, |
| 204 | EHTokFloat1x2, |
| 205 | EHTokFloat1x3, |
| 206 | EHTokFloat1x4, |
| 207 | EHTokFloat2x1, |
| 208 | EHTokFloat2x2, |
| 209 | EHTokFloat2x3, |
| 210 | EHTokFloat2x4, |
| 211 | EHTokFloat3x1, |
| 212 | EHTokFloat3x2, |
| 213 | EHTokFloat3x3, |
| 214 | EHTokFloat3x4, |
| 215 | EHTokFloat4x1, |
| 216 | EHTokFloat4x2, |
| 217 | EHTokFloat4x3, |
| 218 | EHTokFloat4x4, |
| 219 | EHTokDouble1x1, |
| 220 | EHTokDouble1x2, |
| 221 | EHTokDouble1x3, |
| 222 | EHTokDouble1x4, |
| 223 | EHTokDouble2x1, |
| 224 | EHTokDouble2x2, |
| 225 | EHTokDouble2x3, |
| 226 | EHTokDouble2x4, |
| 227 | EHTokDouble3x1, |
| 228 | EHTokDouble3x2, |
| 229 | EHTokDouble3x3, |
| 230 | EHTokDouble3x4, |
| 231 | EHTokDouble4x1, |
| 232 | EHTokDouble4x2, |
| 233 | EHTokDouble4x3, |
| 234 | EHTokDouble4x4, |
| 235 | |
| 236 | // texturing types |
| 237 | EHTokSampler, |
| 238 | EHTokSampler1d, |
| 239 | EHTokSampler2d, |
| 240 | EHTokSampler3d, |
| 241 | EHTokSamplerCube, |
| 242 | EHTokSamplerState, |
| 243 | EHTokSamplerComparisonState, |
| 244 | EHTokTexture, |
| 245 | EHTokTexture1d, |
| 246 | EHTokTexture1darray, |
| 247 | EHTokTexture2d, |
| 248 | EHTokTexture2darray, |
| 249 | EHTokTexture3d, |
| 250 | EHTokTextureCube, |
LoopDawg | 4886f69 | 2016-06-29 10:58:58 -0600 | [diff] [blame] | 251 | EHTokTextureCubearray, |
| 252 | EHTokTexture2DMS, |
| 253 | EHTokTexture2DMSarray, |
steve-lunarg | bb0183f | 2016-10-04 16:58:14 -0600 | [diff] [blame] | 254 | EHTokRWTexture1d, |
| 255 | EHTokRWTexture1darray, |
| 256 | EHTokRWTexture2d, |
| 257 | EHTokRWTexture2darray, |
| 258 | EHTokRWTexture3d, |
| 259 | EHTokRWBuffer, |
John Kessenich | e01a9bc | 2016-03-12 20:11:22 -0700 | [diff] [blame] | 260 | |
steve-lunarg | 5da1f03 | 2017-02-12 17:50:28 -0700 | [diff] [blame] | 261 | // Structure buffer variants |
| 262 | EHTokAppendStructuredBuffer, |
| 263 | EHTokByteAddressBuffer, |
| 264 | EHTokConsumeStructuredBuffer, |
| 265 | EHTokRWByteAddressBuffer, |
| 266 | EHTokRWStructuredBuffer, |
| 267 | EHTokStructuredBuffer, |
| 268 | |
John Kessenich | e01a9bc | 2016-03-12 20:11:22 -0700 | [diff] [blame] | 269 | // variable, user type, ... |
| 270 | EHTokIdentifier, |
John Kessenich | 27ffb29 | 2017-03-03 17:01:01 -0700 | [diff] [blame] | 271 | EHTokClass, |
John Kessenich | e01a9bc | 2016-03-12 20:11:22 -0700 | [diff] [blame] | 272 | EHTokStruct, |
John Kessenich | 3d157c5 | 2016-07-25 16:05:33 -0600 | [diff] [blame] | 273 | EHTokCBuffer, |
| 274 | EHTokTBuffer, |
John Kessenich | e01a9bc | 2016-03-12 20:11:22 -0700 | [diff] [blame] | 275 | EHTokTypedef, |
John Kessenich | 7a41f96 | 2017-03-22 11:38:22 -0600 | [diff] [blame] | 276 | EHTokThis, |
John Kessenich | 8f9fdc9 | 2017-03-30 16:22:26 -0600 | [diff] [blame] | 277 | EHTokNamespace, |
steve-lunarg | a766b83 | 2017-04-25 09:30:28 -0600 | [diff] [blame^] | 278 | EHTokConstantBuffer, |
John Kessenich | e01a9bc | 2016-03-12 20:11:22 -0700 | [diff] [blame] | 279 | |
| 280 | // constant |
| 281 | EHTokFloatConstant, |
| 282 | EHTokDoubleConstant, |
| 283 | EHTokIntConstant, |
| 284 | EHTokUintConstant, |
| 285 | EHTokBoolConstant, |
steve-lunarg | efe9724 | 2016-08-22 16:13:47 -0600 | [diff] [blame] | 286 | EHTokStringConstant, |
John Kessenich | e01a9bc | 2016-03-12 20:11:22 -0700 | [diff] [blame] | 287 | |
| 288 | // control flow |
| 289 | EHTokFor, |
| 290 | EHTokDo, |
| 291 | EHTokWhile, |
| 292 | EHTokBreak, |
| 293 | EHTokContinue, |
| 294 | EHTokIf, |
| 295 | EHTokElse, |
| 296 | EHTokDiscard, |
| 297 | EHTokReturn, |
| 298 | EHTokSwitch, |
| 299 | EHTokCase, |
| 300 | EHTokDefault, |
| 301 | |
| 302 | // expressions |
| 303 | EHTokLeftOp, |
| 304 | EHTokRightOp, |
| 305 | EHTokIncOp, |
| 306 | EHTokDecOp, |
| 307 | EHTokLeOp, |
| 308 | EHTokGeOp, |
| 309 | EHTokEqOp, |
| 310 | EHTokNeOp, |
| 311 | EHTokAndOp, |
| 312 | EHTokOrOp, |
| 313 | EHTokXorOp, |
John Kessenich | 34fb036 | 2016-05-03 23:17:20 -0600 | [diff] [blame] | 314 | EHTokAssign, |
John Kessenich | e01a9bc | 2016-03-12 20:11:22 -0700 | [diff] [blame] | 315 | EHTokMulAssign, |
| 316 | EHTokDivAssign, |
| 317 | EHTokAddAssign, |
| 318 | EHTokModAssign, |
| 319 | EHTokLeftAssign, |
| 320 | EHTokRightAssign, |
| 321 | EHTokAndAssign, |
| 322 | EHTokXorAssign, |
| 323 | EHTokOrAssign, |
| 324 | EHTokSubAssign, |
| 325 | EHTokLeftParen, |
| 326 | EHTokRightParen, |
| 327 | EHTokLeftBracket, |
| 328 | EHTokRightBracket, |
| 329 | EHTokLeftBrace, |
| 330 | EHTokRightBrace, |
| 331 | EHTokDot, |
| 332 | EHTokComma, |
| 333 | EHTokColon, |
John Kessenich | 523e20d | 2017-03-10 18:03:43 -0700 | [diff] [blame] | 334 | EHTokColonColon, |
John Kessenich | e01a9bc | 2016-03-12 20:11:22 -0700 | [diff] [blame] | 335 | EHTokSemicolon, |
| 336 | EHTokBang, |
| 337 | EHTokDash, |
| 338 | EHTokTilde, |
| 339 | EHTokPlus, |
| 340 | EHTokStar, |
| 341 | EHTokSlash, |
| 342 | EHTokPercent, |
| 343 | EHTokLeftAngle, |
| 344 | EHTokRightAngle, |
| 345 | EHTokVerticalBar, |
| 346 | EHTokCaret, |
| 347 | EHTokAmpersand, |
| 348 | EHTokQuestion, |
| 349 | }; |
| 350 | |
| 351 | } // end namespace glslang |
| 352 | |
LoopDawg | 4886f69 | 2016-06-29 10:58:58 -0600 | [diff] [blame] | 353 | #endif // EHLSLTOKENS_H_ |