| // |
| //Copyright (C) 2016 Google, Inc. |
| //Copyright (C) 2016 LunarG, Inc. |
| // |
| //All rights reserved. |
| // |
| //Redistribution and use in source and binary forms, with or without |
| //modification, are permitted provided that the following conditions |
| //are met: |
| // |
| // Redistributions of source code must retain the above copyright |
| // notice, this list of conditions and the following disclaimer. |
| // |
| // Redistributions in binary form must reproduce the above |
| // copyright notice, this list of conditions and the following |
| // disclaimer in the documentation and/or other materials provided |
| // with the distribution. |
| // |
| // Neither the name of Google, Inc., nor the names of its |
| // contributors may be used to endorse or promote products derived |
| // from this software without specific prior written permission. |
| // |
| //THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
| //"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
| //LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS |
| //FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE |
| //COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, |
| //INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, |
| //BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
| //LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER |
| //CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
| //LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN |
| //ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
| //POSSIBILITY OF SUCH DAMAGE. |
| // |
| |
| #ifndef EHLSLTOKENS_H_ |
| #define EHLSLTOKENS_H_ |
| |
| namespace glslang { |
| |
| enum EHlslTokenClass { |
| EHTokNone = 0, |
| |
| // qualifiers |
| EHTokStatic, |
| EHTokConst, |
| EHTokSNorm, |
| EHTokUnorm, |
| EHTokExtern, |
| EHTokUniform, |
| EHTokVolatile, |
| EHTokPrecise, |
| EHTokShared, |
| EHTokGroupShared, |
| EHTokLinear, |
| EHTokCentroid, |
| EHTokNointerpolation, |
| EHTokNoperspective, |
| EHTokSample, |
| EHTokRowMajor, |
| EHTokColumnMajor, |
| EHTokPackOffset, |
| EHTokIn, |
| EHTokOut, |
| EHTokInOut, |
| EHTokLayout, |
| |
| // template types |
| EHTokBuffer, |
| EHTokVector, |
| EHTokMatrix, |
| |
| // scalar types |
| EHTokVoid, |
| EHTokString, |
| EHTokBool, |
| EHTokInt, |
| EHTokUint, |
| EHTokDword, |
| EHTokHalf, |
| EHTokFloat, |
| EHTokDouble, |
| EHTokMin16float, |
| EHTokMin10float, |
| EHTokMin16int, |
| EHTokMin12int, |
| EHTokMin16uint, |
| |
| // vector types |
| EHTokBool1, |
| EHTokBool2, |
| EHTokBool3, |
| EHTokBool4, |
| EHTokFloat1, |
| EHTokFloat2, |
| EHTokFloat3, |
| EHTokFloat4, |
| EHTokInt1, |
| EHTokInt2, |
| EHTokInt3, |
| EHTokInt4, |
| EHTokDouble1, |
| EHTokDouble2, |
| EHTokDouble3, |
| EHTokDouble4, |
| EHTokUint1, |
| EHTokUint2, |
| EHTokUint3, |
| EHTokUint4, |
| |
| // matrix types |
| EHTokInt1x1, |
| EHTokInt1x2, |
| EHTokInt1x3, |
| EHTokInt1x4, |
| EHTokInt2x1, |
| EHTokInt2x2, |
| EHTokInt2x3, |
| EHTokInt2x4, |
| EHTokInt3x1, |
| EHTokInt3x2, |
| EHTokInt3x3, |
| EHTokInt3x4, |
| EHTokInt4x1, |
| EHTokInt4x2, |
| EHTokInt4x3, |
| EHTokInt4x4, |
| EHTokUint1x1, |
| EHTokUint1x2, |
| EHTokUint1x3, |
| EHTokUint1x4, |
| EHTokUint2x1, |
| EHTokUint2x2, |
| EHTokUint2x3, |
| EHTokUint2x4, |
| EHTokUint3x1, |
| EHTokUint3x2, |
| EHTokUint3x3, |
| EHTokUint3x4, |
| EHTokUint4x1, |
| EHTokUint4x2, |
| EHTokUint4x3, |
| EHTokUint4x4, |
| EHTokBool1x1, |
| EHTokBool1x2, |
| EHTokBool1x3, |
| EHTokBool1x4, |
| EHTokBool2x1, |
| EHTokBool2x2, |
| EHTokBool2x3, |
| EHTokBool2x4, |
| EHTokBool3x1, |
| EHTokBool3x2, |
| EHTokBool3x3, |
| EHTokBool3x4, |
| EHTokBool4x1, |
| EHTokBool4x2, |
| EHTokBool4x3, |
| EHTokBool4x4, |
| EHTokFloat1x1, |
| EHTokFloat1x2, |
| EHTokFloat1x3, |
| EHTokFloat1x4, |
| EHTokFloat2x1, |
| EHTokFloat2x2, |
| EHTokFloat2x3, |
| EHTokFloat2x4, |
| EHTokFloat3x1, |
| EHTokFloat3x2, |
| EHTokFloat3x3, |
| EHTokFloat3x4, |
| EHTokFloat4x1, |
| EHTokFloat4x2, |
| EHTokFloat4x3, |
| EHTokFloat4x4, |
| EHTokDouble1x1, |
| EHTokDouble1x2, |
| EHTokDouble1x3, |
| EHTokDouble1x4, |
| EHTokDouble2x1, |
| EHTokDouble2x2, |
| EHTokDouble2x3, |
| EHTokDouble2x4, |
| EHTokDouble3x1, |
| EHTokDouble3x2, |
| EHTokDouble3x3, |
| EHTokDouble3x4, |
| EHTokDouble4x1, |
| EHTokDouble4x2, |
| EHTokDouble4x3, |
| EHTokDouble4x4, |
| |
| // texturing types |
| EHTokSampler, |
| EHTokSampler1d, |
| EHTokSampler2d, |
| EHTokSampler3d, |
| EHTokSamplerCube, |
| EHTokSamplerState, |
| EHTokSamplerComparisonState, |
| EHTokTexture, |
| EHTokTexture1d, |
| EHTokTexture1darray, |
| EHTokTexture2d, |
| EHTokTexture2darray, |
| EHTokTexture3d, |
| EHTokTextureCube, |
| EHTokTextureCubearray, |
| EHTokTexture2DMS, |
| EHTokTexture2DMSarray, |
| |
| // variable, user type, ... |
| EHTokIdentifier, |
| EHTokTypeName, |
| EHTokStruct, |
| EHTokCBuffer, |
| EHTokTBuffer, |
| EHTokTypedef, |
| |
| // constant |
| EHTokFloatConstant, |
| EHTokDoubleConstant, |
| EHTokIntConstant, |
| EHTokUintConstant, |
| EHTokBoolConstant, |
| EHTokStringConstant, |
| |
| // control flow |
| EHTokFor, |
| EHTokDo, |
| EHTokWhile, |
| EHTokBreak, |
| EHTokContinue, |
| EHTokIf, |
| EHTokElse, |
| EHTokDiscard, |
| EHTokReturn, |
| EHTokSwitch, |
| EHTokCase, |
| EHTokDefault, |
| |
| // expressions |
| EHTokLeftOp, |
| EHTokRightOp, |
| EHTokIncOp, |
| EHTokDecOp, |
| EHTokLeOp, |
| EHTokGeOp, |
| EHTokEqOp, |
| EHTokNeOp, |
| EHTokAndOp, |
| EHTokOrOp, |
| EHTokXorOp, |
| EHTokAssign, |
| EHTokMulAssign, |
| EHTokDivAssign, |
| EHTokAddAssign, |
| EHTokModAssign, |
| EHTokLeftAssign, |
| EHTokRightAssign, |
| EHTokAndAssign, |
| EHTokXorAssign, |
| EHTokOrAssign, |
| EHTokSubAssign, |
| EHTokLeftParen, |
| EHTokRightParen, |
| EHTokLeftBracket, |
| EHTokRightBracket, |
| EHTokLeftBrace, |
| EHTokRightBrace, |
| EHTokDot, |
| EHTokComma, |
| EHTokColon, |
| EHTokSemicolon, |
| EHTokBang, |
| EHTokDash, |
| EHTokTilde, |
| EHTokPlus, |
| EHTokStar, |
| EHTokSlash, |
| EHTokPercent, |
| EHTokLeftAngle, |
| EHTokRightAngle, |
| EHTokVerticalBar, |
| EHTokCaret, |
| EHTokAmpersand, |
| EHTokQuestion, |
| }; |
| |
| } // end namespace glslang |
| |
| #endif // EHLSLTOKENS_H_ |