| 4020 | } |
| 4021 | |
| 4022 | bool 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; |
nothing calls this directly
no test coverage detected