MCPcopy Create free account
hub / github.com/alecazam/kram / AcceptType

Method AcceptType

hlslparser/src/HLSLParser.cpp:4022–4292  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

4020}
4021
4022bool HLSLParser::AcceptType(bool allowVoid, HLSLType& type /*, bool acceptFlags*/)
4023{
4024 //if (type.flags != NULL)
4025 {
4026 type.flags = 0;
4027 while (AcceptTypeModifier(type.flags) || AcceptInterpolationModifier(type.flags)) {
4028 }
4029 }
4030
4031 int token = m_tokenizer.GetToken();
4032
4033 if (token == HLSLToken_Comment) {
4034 // TODO: should this advance the tokenizer?
4035 // m_tokenizer.Next();
4036
4037 type.baseType = HLSLBaseType_Comment;
4038 return true;
4039 }
4040
4041 // Check built-in types.
4042 type.baseType = HLSLBaseType_Void;
4043 switch (token) {
4044 case HLSLToken_Float:
4045 type.baseType = HLSLBaseType_Float;
4046 break;
4047 case HLSLToken_Float2:
4048 type.baseType = HLSLBaseType_Float2;
4049 break;
4050 case HLSLToken_Float3:
4051 type.baseType = HLSLBaseType_Float3;
4052 break;
4053 case HLSLToken_Float4:
4054 type.baseType = HLSLBaseType_Float4;
4055 break;
4056
4057 case HLSLToken_Float2x2:
4058 type.baseType = HLSLBaseType_Float2x2;
4059 break;
4060 case HLSLToken_Float3x3:
4061 type.baseType = HLSLBaseType_Float3x3;
4062 break;
4063 case HLSLToken_Float4x4:
4064 type.baseType = HLSLBaseType_Float4x4;
4065 break;
4066
4067 // The parser is remapping the type here
4068 case HLSLToken_Halfio:
4069 type.baseType = m_options.isHalfio ? HLSLBaseType_Half : HLSLBaseType_Float;
4070 break;
4071 case HLSLToken_Half2io:
4072 type.baseType = m_options.isHalfio ? HLSLBaseType_Half2 : HLSLBaseType_Float2;
4073 break;
4074 case HLSLToken_Half3io:
4075 type.baseType = m_options.isHalfio ? HLSLBaseType_Half3 : HLSLBaseType_Float3;
4076 break;
4077 case HLSLToken_Half4io:
4078 type.baseType = m_options.isHalfio ? HLSLBaseType_Half4 : HLSLBaseType_Float4;
4079 break;

Callers

nothing calls this directly

Calls 6

IsTextureTypeFunction · 0.85
GetTokenMethod · 0.80
NextMethod · 0.80
GetIdentifierMethod · 0.80
ErrorMethod · 0.45
AddStringMethod · 0.45

Tested by

no test coverage detected