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