248 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			248 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
//
 | 
						|
//Copyright (C) 2016 Google, 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,
 | 
						|
    EHTokShared,
 | 
						|
    EHTokGroupShared,
 | 
						|
    EHTokLinear,
 | 
						|
    EHTokCentroid,
 | 
						|
    EHTokNointerpolation,
 | 
						|
    EHTokNoperspective,
 | 
						|
    EHTokSample,
 | 
						|
    EHTokRowMajor,
 | 
						|
    EHTokColumnMajor,
 | 
						|
    EHTokPackOffset,
 | 
						|
 | 
						|
    // template types
 | 
						|
    EHTokBuffer,
 | 
						|
    EHTokVector,
 | 
						|
    EHTokMatrix,
 | 
						|
 | 
						|
    // scalar types
 | 
						|
    EHTokVoid,
 | 
						|
    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,
 | 
						|
    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,
 | 
						|
 | 
						|
    // variable, user type, ...
 | 
						|
    EHTokIdentifier,
 | 
						|
    EHTokTypeName,
 | 
						|
    EHTokStruct,
 | 
						|
    EHTokTypedef,
 | 
						|
 | 
						|
    // constant
 | 
						|
    EHTokFloatConstant,
 | 
						|
    EHTokDoubleConstant,
 | 
						|
    EHTokIntConstant,
 | 
						|
    EHTokUintConstant,
 | 
						|
    EHTokBoolConstant,
 | 
						|
 | 
						|
    // 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_
 |