@@ -53,17 +53,15 @@ bool RootSignatureParser::Parse() {
5353 while (!ParseRootElement ()) {
5454 if (Lexer.EndOfBuffer ())
5555 return false ;
56- if (ConsumeExpectedToken (TokenKind::pu_comma, diag::err_expected_either,
57- " end of root signature string" ))
56+ if (ConsumeExpectedToken (TokenKind::pu_comma))
5857 return true ;
5958 }
6059
6160 return true ;
6261}
6362
6463bool RootSignatureParser::ParseRootElement () {
65- if (ConsumeExpectedToken (TokenKind::kw_DescriptorTable,
66- diag::err_hlsl_expected, " root element" ))
64+ if (ConsumeExpectedToken (TokenKind::kw_DescriptorTable))
6765 return true ;
6866
6967 // Dispatch onto the correct parse method
@@ -79,8 +77,7 @@ bool RootSignatureParser::ParseRootElement() {
7977bool RootSignatureParser::ParseDescriptorTable () {
8078 DescriptorTable Table;
8179
82- if (ConsumeExpectedToken (TokenKind::pu_l_paren, diag::err_expected_after,
83- " DescriptorTable" ))
80+ if (ConsumeExpectedToken (TokenKind::pu_l_paren, diag::err_expected_after, CurToken.Kind ))
8481 return true ;
8582
8683 // Empty case:
@@ -111,8 +108,7 @@ bool RootSignatureParser::ParseDescriptorTable() {
111108 Table.NumClauses ++;
112109 } while (TryConsumeExpectedToken (TokenKind::pu_comma));
113110
114- if (ConsumeExpectedToken (TokenKind::pu_r_paren, diag::err_expected_after,
115- " descriptor table clauses" ))
111+ if (ConsumeExpectedToken (TokenKind::pu_r_paren, diag::err_expected_after, CurToken.Kind ))
116112 return true ;
117113
118114 Elements.push_back (Table);
@@ -121,8 +117,7 @@ bool RootSignatureParser::ParseDescriptorTable() {
121117
122118bool RootSignatureParser::ParseDescriptorTableClause () {
123119 if (ConsumeExpectedToken ({TokenKind::kw_CBV, TokenKind::kw_SRV,
124- TokenKind::kw_UAV, TokenKind::kw_Sampler},
125- diag::err_hlsl_expected, " descriptor table clause" ))
120+ TokenKind::kw_UAV, TokenKind::kw_Sampler}))
126121 return true ;
127122
128123 DescriptorTableClause Clause;
@@ -144,8 +139,7 @@ bool RootSignatureParser::ParseDescriptorTableClause() {
144139 }
145140 Clause.SetDefaultFlags ();
146141
147- if (ConsumeExpectedToken (TokenKind::pu_l_paren, diag::err_expected_after,
148- FormatTokenKinds ({CurToken.Kind })))
142+ if (ConsumeExpectedToken (TokenKind::pu_l_paren, diag::err_expected_after, CurToken.Kind ))
149143 return true ;
150144
151145 // Consume mandatory Register paramater
@@ -162,8 +156,7 @@ bool RootSignatureParser::ParseDescriptorTableClause() {
162156 if (ParseOptionalParams ({RefMap}))
163157 return true ;
164158
165- if (ConsumeExpectedToken (TokenKind::pu_r_paren, diag::err_expected_after,
166- " clause parameters" ))
159+ if (ConsumeExpectedToken (TokenKind::pu_r_paren, diag::err_expected_after, CurToken.Kind ))
167160 return true ;
168161
169162 Elements.push_back (Clause);
@@ -175,8 +168,7 @@ template <class... Ts> struct ParseMethods : Ts... { using Ts::operator()...; };
175168template <class ... Ts> ParseMethods (Ts...) -> ParseMethods<Ts...>;
176169
177170bool RootSignatureParser::ParseParam (ParamType Ref) {
178- if (ConsumeExpectedToken (TokenKind::pu_equal, diag::err_expected_after,
179- FormatTokenKinds (CurToken.Kind )))
171+ if (ConsumeExpectedToken (TokenKind::pu_equal, diag::err_expected_after, CurToken.Kind ))
180172 return true ;
181173
182174 bool Error;
@@ -206,8 +198,7 @@ bool RootSignatureParser::ParseOptionalParams(
206198 llvm::SmallDenseSet<TokenKind> Seen;
207199
208200 while (TryConsumeExpectedToken (TokenKind::pu_comma)) {
209- if (ConsumeExpectedToken (ParamKeywords, diag::err_hlsl_expected,
210- " optional parameter" ))
201+ if (ConsumeExpectedToken (ParamKeywords))
211202 return true ;
212203
213204 TokenKind ParamKind = CurToken.Kind ;
@@ -250,8 +241,7 @@ bool RootSignatureParser::HandleUIntLiteral(uint32_t &X) {
250241
251242bool RootSignatureParser::ParseRegister (Register *Register) {
252243 if (ConsumeExpectedToken (
253- {TokenKind::bReg, TokenKind::tReg, TokenKind::uReg, TokenKind::sReg },
254- diag::err_hlsl_expected, " a register" ))
244+ {TokenKind::bReg, TokenKind::tReg, TokenKind::uReg, TokenKind::sReg }))
255245 return true ;
256246
257247 switch (CurToken.Kind ) {
@@ -280,8 +270,7 @@ bool RootSignatureParser::ParseRegister(Register *Register) {
280270bool RootSignatureParser::ParseUInt (uint32_t *X) {
281271 // Treat a postively signed integer as though it is unsigned to match DXC
282272 TryConsumeExpectedToken (TokenKind::pu_plus);
283- if (ConsumeExpectedToken (TokenKind::int_literal, diag::err_hlsl_expected,
284- " unsigned integer" ))
273+ if (ConsumeExpectedToken (TokenKind::int_literal))
285274 return true ;
286275
287276 if (HandleUIntLiteral (*X))
@@ -292,8 +281,7 @@ bool RootSignatureParser::ParseUInt(uint32_t *X) {
292281
293282bool RootSignatureParser::ParseDescriptorRangeOffset (DescriptorRangeOffset *X) {
294283 if (ConsumeExpectedToken (
295- {TokenKind::int_literal, TokenKind::en_DescriptorRangeOffsetAppend},
296- diag::err_hlsl_expected, " descriptor range offset" ))
284+ {TokenKind::int_literal, TokenKind::en_DescriptorRangeOffsetAppend}))
297285 return true ;
298286
299287 // Edge case for the offset enum -> static value
@@ -319,8 +307,7 @@ bool RootSignatureParser::ParseEnum(
319307 EnumToks.push_back (EnumPair.first );
320308
321309 // If invoked we expect to have an enum
322- if (ConsumeExpectedToken (EnumToks, diag::err_hlsl_expected,
323- " parameter value" ))
310+ if (ConsumeExpectedToken (EnumToks))
324311 return true ;
325312
326313 // Handle the edge case when '0' is used to specify None
@@ -406,13 +393,13 @@ bool RootSignatureParser::PeekExpectedToken(ArrayRef<TokenKind> AnyExpected) {
406393
407394bool RootSignatureParser::ConsumeExpectedToken (TokenKind Expected,
408395 unsigned DiagID,
409- StringRef DiagMsg ) {
410- return ConsumeExpectedToken (ArrayRef{Expected}, DiagID, DiagMsg );
396+ TokenKind Context ) {
397+ return ConsumeExpectedToken (ArrayRef{Expected}, DiagID, Context );
411398}
412399
413400bool RootSignatureParser::ConsumeExpectedToken (ArrayRef<TokenKind> AnyExpected,
414401 unsigned DiagID,
415- StringRef DiagMsg ) {
402+ TokenKind Context ) {
416403 if (TryConsumeExpectedToken (AnyExpected))
417404 return false ;
418405
@@ -422,14 +409,11 @@ bool RootSignatureParser::ConsumeExpectedToken(ArrayRef<TokenKind> AnyExpected,
422409 case diag::err_expected:
423410 DB << FormatTokenKinds (AnyExpected);
424411 break ;
425- case diag::err_hlsl_expected:
426412 case diag::err_expected_either:
427413 case diag::err_expected_after:
428- DB << FormatTokenKinds (AnyExpected) << DiagMsg;
429- break ;
430- default :
431- DB << DiagMsg;
414+ DB << FormatTokenKinds (AnyExpected) << FormatTokenKinds ({Context});
432415 break ;
416+ default : break ;
433417 }
434418 return true ;
435419}
0 commit comments