mirror of
https://github.com/RPCS3/glslang.git
synced 2024-11-30 22:51:06 +00:00
a00e51b5b2
- Add missing constructor ops to support float16/int16/uint16 types - Allow half float literals - Correct two errors of double literal parse in HLSL: extension check and postfix
375 lines
7.6 KiB
C++
Executable File
375 lines
7.6 KiB
C++
Executable File
//
|
|
// 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,
|
|
EHTokGloballyCoherent,
|
|
EHTokInline,
|
|
|
|
// primitive types
|
|
EHTokPoint,
|
|
EHTokLine,
|
|
EHTokTriangle,
|
|
EHTokLineAdj,
|
|
EHTokTriangleAdj,
|
|
|
|
// stream out types
|
|
EHTokPointStream,
|
|
EHTokLineStream,
|
|
EHTokTriangleStream,
|
|
|
|
// Tessellation patches
|
|
EHTokInputPatch,
|
|
EHTokOutputPatch,
|
|
|
|
// template types
|
|
EHTokBuffer,
|
|
EHTokVector,
|
|
EHTokMatrix,
|
|
|
|
// scalar types
|
|
EHTokVoid,
|
|
EHTokString,
|
|
EHTokBool,
|
|
EHTokInt,
|
|
EHTokUint,
|
|
EHTokUint64,
|
|
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,
|
|
EHTokHalf1,
|
|
EHTokHalf2,
|
|
EHTokHalf3,
|
|
EHTokHalf4,
|
|
EHTokMin16float1,
|
|
EHTokMin16float2,
|
|
EHTokMin16float3,
|
|
EHTokMin16float4,
|
|
EHTokMin10float1,
|
|
EHTokMin10float2,
|
|
EHTokMin10float3,
|
|
EHTokMin10float4,
|
|
EHTokMin16int1,
|
|
EHTokMin16int2,
|
|
EHTokMin16int3,
|
|
EHTokMin16int4,
|
|
EHTokMin12int1,
|
|
EHTokMin12int2,
|
|
EHTokMin12int3,
|
|
EHTokMin12int4,
|
|
EHTokMin16uint1,
|
|
EHTokMin16uint2,
|
|
EHTokMin16uint3,
|
|
EHTokMin16uint4,
|
|
|
|
// 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,
|
|
EHTokHalf1x1,
|
|
EHTokHalf1x2,
|
|
EHTokHalf1x3,
|
|
EHTokHalf1x4,
|
|
EHTokHalf2x1,
|
|
EHTokHalf2x2,
|
|
EHTokHalf2x3,
|
|
EHTokHalf2x4,
|
|
EHTokHalf3x1,
|
|
EHTokHalf3x2,
|
|
EHTokHalf3x3,
|
|
EHTokHalf3x4,
|
|
EHTokHalf4x1,
|
|
EHTokHalf4x2,
|
|
EHTokHalf4x3,
|
|
EHTokHalf4x4,
|
|
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,
|
|
EHTokRWTexture1d,
|
|
EHTokRWTexture1darray,
|
|
EHTokRWTexture2d,
|
|
EHTokRWTexture2darray,
|
|
EHTokRWTexture3d,
|
|
EHTokRWBuffer,
|
|
EHTokSubpassInput,
|
|
EHTokSubpassInputMS,
|
|
|
|
// Structure buffer variants
|
|
EHTokAppendStructuredBuffer,
|
|
EHTokByteAddressBuffer,
|
|
EHTokConsumeStructuredBuffer,
|
|
EHTokRWByteAddressBuffer,
|
|
EHTokRWStructuredBuffer,
|
|
EHTokStructuredBuffer,
|
|
EHTokTextureBuffer,
|
|
|
|
// variable, user type, ...
|
|
EHTokIdentifier,
|
|
EHTokClass,
|
|
EHTokStruct,
|
|
EHTokCBuffer,
|
|
EHTokTBuffer,
|
|
EHTokTypedef,
|
|
EHTokThis,
|
|
EHTokNamespace,
|
|
EHTokConstantBuffer,
|
|
|
|
// constant
|
|
EHTokFloat16Constant,
|
|
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,
|
|
EHTokColonColon,
|
|
EHTokSemicolon,
|
|
EHTokBang,
|
|
EHTokDash,
|
|
EHTokTilde,
|
|
EHTokPlus,
|
|
EHTokStar,
|
|
EHTokSlash,
|
|
EHTokPercent,
|
|
EHTokLeftAngle,
|
|
EHTokRightAngle,
|
|
EHTokVerticalBar,
|
|
EHTokCaret,
|
|
EHTokAmpersand,
|
|
EHTokQuestion,
|
|
};
|
|
|
|
} // end namespace glslang
|
|
|
|
#endif // EHLSLTOKENS_H_
|