@@ -53,15 +53,18 @@ bool RootSignatureParser::Parse() {
53
53
while (!ParseRootElement ()) {
54
54
if (Lexer.EndOfBuffer ())
55
55
return false ;
56
- if (ConsumeExpectedToken (TokenKind::pu_comma, diag::err_expected_either, TokenKind::end_of_stream))
56
+ if (ConsumeExpectedToken (TokenKind::pu_comma, diag::err_expected_either,
57
+ TokenKind::end_of_stream))
57
58
return true ;
58
59
}
59
60
60
61
return true ;
61
62
}
62
63
63
64
bool RootSignatureParser::ParseRootElement () {
64
- if (ConsumeExpectedToken (TokenKind::kw_DescriptorTable, diag::err_hlsl_expected_param, /* Context=*/ TokenKind::kw_RootSignature))
65
+ if (ConsumeExpectedToken (TokenKind::kw_DescriptorTable,
66
+ diag::err_hlsl_expected_param,
67
+ /* Context=*/ TokenKind::kw_RootSignature))
65
68
return true ;
66
69
67
70
// Dispatch onto the correct parse method
@@ -77,7 +80,8 @@ bool RootSignatureParser::ParseRootElement() {
77
80
bool RootSignatureParser::ParseDescriptorTable () {
78
81
DescriptorTable Table;
79
82
80
- if (ConsumeExpectedToken (TokenKind::pu_l_paren, diag::err_expected_after, CurToken.Kind ))
83
+ if (ConsumeExpectedToken (TokenKind::pu_l_paren, diag::err_expected_after,
84
+ CurToken.Kind ))
81
85
return true ;
82
86
83
87
// Empty case:
@@ -108,7 +112,8 @@ bool RootSignatureParser::ParseDescriptorTable() {
108
112
Table.NumClauses ++;
109
113
} while (TryConsumeExpectedToken (TokenKind::pu_comma));
110
114
111
- if (ConsumeExpectedToken (TokenKind::pu_r_paren, diag::err_expected_after, CurToken.Kind ))
115
+ if (ConsumeExpectedToken (TokenKind::pu_r_paren, diag::err_expected_after,
116
+ CurToken.Kind ))
112
117
return true ;
113
118
114
119
Elements.push_back (Table);
@@ -144,7 +149,8 @@ bool RootSignatureParser::ParseDescriptorTableClause() {
144
149
// Store context of clause token type we are parsing
145
150
TokenKind Context = CurToken.Kind ;
146
151
147
- if (ConsumeExpectedToken (TokenKind::pu_l_paren, diag::err_expected_after, CurToken.Kind ))
152
+ if (ConsumeExpectedToken (TokenKind::pu_l_paren, diag::err_expected_after,
153
+ CurToken.Kind ))
148
154
return true ;
149
155
150
156
// Consume mandatory Register paramater
@@ -161,7 +167,8 @@ bool RootSignatureParser::ParseDescriptorTableClause() {
161
167
if (ParseOptionalParams ({RefMap}, Context))
162
168
return true ;
163
169
164
- if (ConsumeExpectedToken (TokenKind::pu_r_paren, diag::err_expected_after, CurToken.Kind ))
170
+ if (ConsumeExpectedToken (TokenKind::pu_r_paren, diag::err_expected_after,
171
+ CurToken.Kind ))
165
172
return true ;
166
173
167
174
Elements.push_back (Clause);
@@ -173,22 +180,24 @@ template <class... Ts> struct ParseMethods : Ts... { using Ts::operator()...; };
173
180
template <class ... Ts> ParseMethods (Ts...) -> ParseMethods<Ts...>;
174
181
175
182
bool RootSignatureParser::ParseParam (ParamType Ref, TokenKind Context) {
176
- if (ConsumeExpectedToken (TokenKind::pu_equal, diag::err_expected_after, CurToken.Kind ))
183
+ if (ConsumeExpectedToken (TokenKind::pu_equal, diag::err_expected_after,
184
+ CurToken.Kind ))
177
185
return true ;
178
186
179
187
bool Error;
180
- std::visit (
181
- ParseMethods{
182
- [&](uint32_t *X) { Error = ParseUInt (X, Context); },
183
- [&](DescriptorRangeOffset *X) {
184
- Error = ParseDescriptorRangeOffset (X, Context);
185
- },
186
- [&](ShaderVisibility *Enum) { Error = ParseShaderVisibility (Enum, Context); },
187
- [&](DescriptorRangeFlags *Flags) {
188
- Error = ParseDescriptorRangeFlags (Flags, Context);
189
- },
190
- },
191
- Ref);
188
+ std::visit (ParseMethods{
189
+ [&](uint32_t *X) { Error = ParseUInt (X, Context); },
190
+ [&](DescriptorRangeOffset *X) {
191
+ Error = ParseDescriptorRangeOffset (X, Context);
192
+ },
193
+ [&](ShaderVisibility *Enum) {
194
+ Error = ParseShaderVisibility (Enum, Context);
195
+ },
196
+ [&](DescriptorRangeFlags *Flags) {
197
+ Error = ParseDescriptorRangeFlags (Flags, Context);
198
+ },
199
+ },
200
+ Ref);
192
201
193
202
return Error;
194
203
}
@@ -203,7 +212,8 @@ bool RootSignatureParser::ParseOptionalParams(
203
212
llvm::SmallDenseSet<TokenKind> Seen;
204
213
205
214
while (TryConsumeExpectedToken (TokenKind::pu_comma)) {
206
- if (ConsumeExpectedToken (ParamKeywords, diag::err_hlsl_expected_param, Context))
215
+ if (ConsumeExpectedToken (ParamKeywords, diag::err_hlsl_expected_param,
216
+ Context))
207
217
return true ;
208
218
209
219
TokenKind ParamKind = CurToken.Kind ;
@@ -247,8 +257,7 @@ bool RootSignatureParser::HandleUIntLiteral(uint32_t &X) {
247
257
bool RootSignatureParser::ParseRegister (Register *Register, TokenKind Context) {
248
258
if (ConsumeExpectedToken (
249
259
{TokenKind::bReg, TokenKind::tReg, TokenKind::uReg, TokenKind::sReg },
250
- diag::err_hlsl_expected_param,
251
- Context))
260
+ diag::err_hlsl_expected_param, Context))
252
261
return true ;
253
262
254
263
switch (CurToken.Kind ) {
@@ -277,7 +286,8 @@ bool RootSignatureParser::ParseRegister(Register *Register, TokenKind Context) {
277
286
bool RootSignatureParser::ParseUInt (uint32_t *X, TokenKind Context) {
278
287
// Treat a postively signed integer as though it is unsigned to match DXC
279
288
TryConsumeExpectedToken (TokenKind::pu_plus);
280
- if (ConsumeExpectedToken (TokenKind::int_literal, diag::err_hlsl_expected_value, Context))
289
+ if (ConsumeExpectedToken (TokenKind::int_literal,
290
+ diag::err_hlsl_expected_value, Context))
281
291
return true ;
282
292
283
293
if (HandleUIntLiteral (*X))
@@ -286,12 +296,11 @@ bool RootSignatureParser::ParseUInt(uint32_t *X, TokenKind Context) {
286
296
return false ;
287
297
}
288
298
289
- bool RootSignatureParser::ParseDescriptorRangeOffset (DescriptorRangeOffset *X, TokenKind Context) {
299
+ bool RootSignatureParser::ParseDescriptorRangeOffset (DescriptorRangeOffset *X,
300
+ TokenKind Context) {
290
301
if (ConsumeExpectedToken (
291
302
{TokenKind::int_literal, TokenKind::en_DescriptorRangeOffsetAppend},
292
- diag::err_hlsl_expected_value,
293
- Context
294
- ))
303
+ diag::err_hlsl_expected_value, Context))
295
304
return true ;
296
305
297
306
// Edge case for the offset enum -> static value
@@ -309,7 +318,8 @@ bool RootSignatureParser::ParseDescriptorRangeOffset(DescriptorRangeOffset *X, T
309
318
310
319
template <bool AllowZero, typename EnumType>
311
320
bool RootSignatureParser::ParseEnum (
312
- llvm::SmallDenseMap<TokenKind, EnumType> &EnumMap, EnumType *Enum, TokenKind Context) {
321
+ llvm::SmallDenseMap<TokenKind, EnumType> &EnumMap, EnumType *Enum,
322
+ TokenKind Context) {
313
323
SmallVector<TokenKind> EnumToks;
314
324
if (AllowZero)
315
325
EnumToks.push_back (TokenKind::int_literal); // '0' is a valid flag value
@@ -344,7 +354,8 @@ bool RootSignatureParser::ParseEnum(
344
354
llvm_unreachable (" Switch for an expected token was not provided" );
345
355
}
346
356
347
- bool RootSignatureParser::ParseShaderVisibility (ShaderVisibility *Enum, TokenKind Context) {
357
+ bool RootSignatureParser::ParseShaderVisibility (ShaderVisibility *Enum,
358
+ TokenKind Context) {
348
359
// Define the possible flag kinds
349
360
llvm::SmallDenseMap<TokenKind, ShaderVisibility> EnumMap = {
350
361
#define SHADER_VISIBILITY_ENUM (NAME, LIT ) \
@@ -357,7 +368,8 @@ bool RootSignatureParser::ParseShaderVisibility(ShaderVisibility *Enum, TokenKin
357
368
358
369
template <typename FlagType>
359
370
bool RootSignatureParser::ParseFlags (
360
- llvm::SmallDenseMap<TokenKind, FlagType> &FlagMap, FlagType *Flags, TokenKind Context) {
371
+ llvm::SmallDenseMap<TokenKind, FlagType> &FlagMap, FlagType *Flags,
372
+ TokenKind Context) {
361
373
// Override the default value to 0 so that we can correctly 'or' the values
362
374
*Flags = FlagType (0 );
363
375
@@ -372,8 +384,8 @@ bool RootSignatureParser::ParseFlags(
372
384
return false ;
373
385
}
374
386
375
- bool RootSignatureParser::ParseDescriptorRangeFlags (
376
- DescriptorRangeFlags *Flags, TokenKind Context) {
387
+ bool RootSignatureParser::ParseDescriptorRangeFlags (DescriptorRangeFlags *Flags,
388
+ TokenKind Context) {
377
389
// Define the possible flag kinds
378
390
llvm::SmallDenseMap<TokenKind, DescriptorRangeFlags> FlagMap = {
379
391
#define DESCRIPTOR_RANGE_FLAG_ENUM (NAME, LIT, ON ) \
@@ -425,7 +437,8 @@ bool RootSignatureParser::ConsumeExpectedToken(ArrayRef<TokenKind> AnyExpected,
425
437
case diag::err_hlsl_expected_value:
426
438
DB << FormatTokenKinds (AnyExpected) << FormatTokenKinds ({Context});
427
439
break ;
428
- default : break ;
440
+ default :
441
+ break ;
429
442
}
430
443
return true ;
431
444
}
0 commit comments