HLSL: Add 'class' keyword as (so far) synonym for 'struct'.
This commit is contained in:
		
							parent
							
								
									c18cae2145
								
							
						
					
					
						commit
						27ffb29908
					
				| @ -12,7 +12,7 @@ struct myS { | |||||||
| 
 | 
 | ||||||
| myS s1; | myS s1; | ||||||
| 
 | 
 | ||||||
| static struct { | static class { | ||||||
|     float4 i; |     float4 i; | ||||||
| } s2; | } s2; | ||||||
| 
 | 
 | ||||||
| @ -32,7 +32,7 @@ float ff6 : packoffset(c102.y) : register(s3[5]); | |||||||
| 
 | 
 | ||||||
| float4 PixelShaderFunction(float4 input, IN_S s) : COLOR0 | float4 PixelShaderFunction(float4 input, IN_S s) : COLOR0 | ||||||
| { | { | ||||||
|     struct FS { |     class FS { | ||||||
|         bool3 b3; |         bool3 b3; | ||||||
|     } s3; |     } s3; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -2,5 +2,5 @@ | |||||||
| // For the version, it uses the latest git tag followed by the number of commits.
 | // For the version, it uses the latest git tag followed by the number of commits.
 | ||||||
| // For the date, it uses the current date (when then script is run).
 | // For the date, it uses the current date (when then script is run).
 | ||||||
| 
 | 
 | ||||||
| #define GLSLANG_REVISION "Overload400-PrecQual.1871" | #define GLSLANG_REVISION "Overload400-PrecQual.1874" | ||||||
| #define GLSLANG_DATE "02-Mar-2017" | #define GLSLANG_DATE "03-Mar-2017" | ||||||
|  | |||||||
| @ -1259,6 +1259,7 @@ bool HlslGrammar::acceptType(TType& type) | |||||||
|         return acceptStructBufferType(type); |         return acceptStructBufferType(type); | ||||||
|         break; |         break; | ||||||
| 
 | 
 | ||||||
|  |     case EHTokClass: | ||||||
|     case EHTokStruct: |     case EHTokStruct: | ||||||
|     case EHTokCBuffer: |     case EHTokCBuffer: | ||||||
|     case EHTokTBuffer: |     case EHTokTBuffer: | ||||||
| @ -1732,6 +1733,7 @@ bool HlslGrammar::acceptType(TType& type) | |||||||
| //
 | //
 | ||||||
| // struct_type
 | // struct_type
 | ||||||
| //      : STRUCT
 | //      : STRUCT
 | ||||||
|  | //      | CLASS
 | ||||||
| //      | CBUFFER
 | //      | CBUFFER
 | ||||||
| //      | TBUFFER
 | //      | TBUFFER
 | ||||||
| //
 | //
 | ||||||
| @ -1747,8 +1749,9 @@ bool HlslGrammar::acceptStruct(TType& type) | |||||||
|     // TBUFFER
 |     // TBUFFER
 | ||||||
|     else if (acceptTokenClass(EHTokTBuffer)) |     else if (acceptTokenClass(EHTokTBuffer)) | ||||||
|         storageQualifier = EvqBuffer; |         storageQualifier = EvqBuffer; | ||||||
|  |     // CLASS
 | ||||||
|     // STRUCT
 |     // STRUCT
 | ||||||
|     else if (! acceptTokenClass(EHTokStruct)) |     else if (! acceptTokenClass(EHTokClass) && ! acceptTokenClass(EHTokStruct)) | ||||||
|         return false; |         return false; | ||||||
| 
 | 
 | ||||||
|     // IDENTIFIER
 |     // IDENTIFIER
 | ||||||
|  | |||||||
| @ -327,6 +327,7 @@ void HlslScanContext::fillInKeywordMap() | |||||||
|     (*KeywordMap)["RWStructuredBuffer"] =      EHTokRWStructuredBuffer; |     (*KeywordMap)["RWStructuredBuffer"] =      EHTokRWStructuredBuffer; | ||||||
|     (*KeywordMap)["StructuredBuffer"] =        EHTokStructuredBuffer; |     (*KeywordMap)["StructuredBuffer"] =        EHTokStructuredBuffer; | ||||||
| 
 | 
 | ||||||
|  |     (*KeywordMap)["class"] =                   EHTokClass; | ||||||
|     (*KeywordMap)["struct"] =                  EHTokStruct; |     (*KeywordMap)["struct"] =                  EHTokStruct; | ||||||
|     (*KeywordMap)["cbuffer"] =                 EHTokCBuffer; |     (*KeywordMap)["cbuffer"] =                 EHTokCBuffer; | ||||||
|     (*KeywordMap)["tbuffer"] =                 EHTokTBuffer; |     (*KeywordMap)["tbuffer"] =                 EHTokTBuffer; | ||||||
| @ -354,7 +355,6 @@ void HlslScanContext::fillInKeywordMap() | |||||||
|     ReservedSet->insert("auto"); |     ReservedSet->insert("auto"); | ||||||
|     ReservedSet->insert("catch"); |     ReservedSet->insert("catch"); | ||||||
|     ReservedSet->insert("char"); |     ReservedSet->insert("char"); | ||||||
|     ReservedSet->insert("class"); |  | ||||||
|     ReservedSet->insert("const_cast"); |     ReservedSet->insert("const_cast"); | ||||||
|     ReservedSet->insert("enum"); |     ReservedSet->insert("enum"); | ||||||
|     ReservedSet->insert("explicit"); |     ReservedSet->insert("explicit"); | ||||||
| @ -740,6 +740,7 @@ EHlslTokenClass HlslScanContext::tokenizeIdentifier() | |||||||
|         return keyword; |         return keyword; | ||||||
| 
 | 
 | ||||||
|     // variable, user type, ...
 |     // variable, user type, ...
 | ||||||
|  |     case EHTokClass: | ||||||
|     case EHTokStruct: |     case EHTokStruct: | ||||||
|     case EHTokTypedef: |     case EHTokTypedef: | ||||||
|     case EHTokCBuffer: |     case EHTokCBuffer: | ||||||
|  | |||||||
| @ -268,6 +268,7 @@ enum EHlslTokenClass { | |||||||
|     // variable, user type, ...
 |     // variable, user type, ...
 | ||||||
|     EHTokIdentifier, |     EHTokIdentifier, | ||||||
|     EHTokTypeName, |     EHTokTypeName, | ||||||
|  |     EHTokClass, | ||||||
|     EHTokStruct, |     EHTokStruct, | ||||||
|     EHTokCBuffer, |     EHTokCBuffer, | ||||||
|     EHTokTBuffer, |     EHTokTBuffer, | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 John Kessenich
						John Kessenich