classify template args: add cases used to debug Treesitter scanner
Change-Id: Ie27b217d68a2bae7d86b99d4268be11a7f47279f Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/121540 Reviewed-by: Ben Clayton <bclayton@google.com> Commit-Queue: David Neto <dneto@google.com> Kokoro: Kokoro <noreply+kokoro@google.com>
This commit is contained in:
parent
6176c85be8
commit
c5ec169b89
|
@ -479,5 +479,198 @@ INSTANTIATE_TEST_SUITE_P(Template,
|
||||||
},
|
},
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
INSTANTIATE_TEST_SUITE_P(TreesitterScannerSeparatingCases,
|
||||||
|
ClassifyTemplateArgsTest,
|
||||||
|
testing::ValuesIn(std::vector<Case>{
|
||||||
|
// Treesitter had trouble missing '=' in its lookahead
|
||||||
|
{
|
||||||
|
"a<b>=c",
|
||||||
|
{
|
||||||
|
T::kIdentifier, // a
|
||||||
|
T::kTemplateArgsLeft, // <
|
||||||
|
T::kIdentifier, // b
|
||||||
|
T::kTemplateArgsRight, // >
|
||||||
|
T::kEqual, // =
|
||||||
|
T::kIdentifier, // c
|
||||||
|
T::kEOF,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"a<b>>=c",
|
||||||
|
{
|
||||||
|
T::kIdentifier, // a
|
||||||
|
T::kTemplateArgsLeft, // <
|
||||||
|
T::kIdentifier, // b
|
||||||
|
T::kTemplateArgsRight, // >
|
||||||
|
T::kGreaterThanEqual, // >=
|
||||||
|
T::kPlaceholder, // <placeholder>
|
||||||
|
T::kIdentifier, // c
|
||||||
|
T::kEOF,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"a<b==c>",
|
||||||
|
{
|
||||||
|
T::kIdentifier, // a
|
||||||
|
T::kTemplateArgsLeft, // <
|
||||||
|
T::kIdentifier, // b
|
||||||
|
T::kEqualEqual, // ==
|
||||||
|
T::kIdentifier, // c
|
||||||
|
T::kTemplateArgsRight, // >
|
||||||
|
T::kEOF,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"a<(b==c)>",
|
||||||
|
{
|
||||||
|
T::kIdentifier, // a
|
||||||
|
T::kTemplateArgsLeft, // <
|
||||||
|
T::kParenLeft, // (
|
||||||
|
T::kIdentifier, // b
|
||||||
|
T::kEqualEqual, // ==
|
||||||
|
T::kIdentifier, // c
|
||||||
|
T::kParenRight, // )
|
||||||
|
T::kTemplateArgsRight, // >
|
||||||
|
T::kEOF,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"a<b<=c>",
|
||||||
|
{
|
||||||
|
T::kIdentifier, // a
|
||||||
|
T::kTemplateArgsLeft, // <
|
||||||
|
T::kIdentifier, // b
|
||||||
|
T::kLessThanEqual, // <=
|
||||||
|
T::kIdentifier, // c
|
||||||
|
T::kTemplateArgsRight, // >
|
||||||
|
T::kEOF,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"a<(b<=c)>",
|
||||||
|
{
|
||||||
|
T::kIdentifier, // a
|
||||||
|
T::kTemplateArgsLeft, // <
|
||||||
|
T::kParenLeft, // (
|
||||||
|
T::kIdentifier, // b
|
||||||
|
T::kLessThanEqual, // <=
|
||||||
|
T::kIdentifier, // c
|
||||||
|
T::kParenRight, // )
|
||||||
|
T::kTemplateArgsRight, // >
|
||||||
|
T::kEOF,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"a<b>=c>",
|
||||||
|
{
|
||||||
|
T::kIdentifier, // a
|
||||||
|
T::kTemplateArgsLeft, // <
|
||||||
|
T::kIdentifier, // b
|
||||||
|
T::kTemplateArgsRight, // >
|
||||||
|
T::kEqual, // =
|
||||||
|
T::kIdentifier, // c
|
||||||
|
T::kGreaterThan, // >
|
||||||
|
T::kEOF,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"a<(b<=c)>",
|
||||||
|
{
|
||||||
|
T::kIdentifier, // a
|
||||||
|
T::kTemplateArgsLeft, // <
|
||||||
|
T::kParenLeft, // (
|
||||||
|
T::kIdentifier, // b
|
||||||
|
T::kLessThanEqual, // <=
|
||||||
|
T::kIdentifier, // c
|
||||||
|
T::kParenRight, // )
|
||||||
|
T::kTemplateArgsRight, // >
|
||||||
|
T::kEOF,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"a<b>>c>",
|
||||||
|
{
|
||||||
|
T::kIdentifier, // a
|
||||||
|
T::kTemplateArgsLeft, // <
|
||||||
|
T::kIdentifier, // b
|
||||||
|
T::kTemplateArgsRight, // >
|
||||||
|
T::kGreaterThan, // >
|
||||||
|
T::kIdentifier, // c
|
||||||
|
T::kGreaterThan, // >
|
||||||
|
T::kEOF,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"a<b<<c>",
|
||||||
|
{
|
||||||
|
T::kIdentifier, // a
|
||||||
|
T::kTemplateArgsLeft, // <
|
||||||
|
T::kIdentifier, // b
|
||||||
|
T::kShiftLeft, // <<
|
||||||
|
T::kIdentifier, // c
|
||||||
|
T::kTemplateArgsRight, // >
|
||||||
|
T::kEOF,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"a<(b<<c)>",
|
||||||
|
{
|
||||||
|
T::kIdentifier, // a
|
||||||
|
T::kTemplateArgsLeft, // <
|
||||||
|
T::kParenLeft, // (
|
||||||
|
T::kIdentifier, // b
|
||||||
|
T::kShiftLeft, // <<
|
||||||
|
T::kIdentifier, // c
|
||||||
|
T::kParenRight, // )
|
||||||
|
T::kTemplateArgsRight, // >
|
||||||
|
T::kEOF,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"a<(b>>c)>",
|
||||||
|
{
|
||||||
|
T::kIdentifier, // a
|
||||||
|
T::kTemplateArgsLeft, // <
|
||||||
|
T::kParenLeft, // (
|
||||||
|
T::kIdentifier, // b
|
||||||
|
T::kShiftRight, // >>
|
||||||
|
T::kPlaceholder, // <placeholder>
|
||||||
|
T::kIdentifier, // c
|
||||||
|
T::kParenRight, // )
|
||||||
|
T::kTemplateArgsRight, // >
|
||||||
|
T::kEOF,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"a<1<<c>",
|
||||||
|
{
|
||||||
|
T::kIdentifier, // a
|
||||||
|
T::kTemplateArgsLeft, // <
|
||||||
|
T::kIntLiteral, // 1
|
||||||
|
T::kShiftLeft, // <<
|
||||||
|
T::kIdentifier, // c
|
||||||
|
T::kTemplateArgsRight, // >
|
||||||
|
T::kEOF,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"a<1<<c<d>()>",
|
||||||
|
{
|
||||||
|
T::kIdentifier, // a
|
||||||
|
T::kTemplateArgsLeft, // <
|
||||||
|
T::kIntLiteral, // 1
|
||||||
|
T::kShiftLeft, // <<
|
||||||
|
T::kIdentifier, // c
|
||||||
|
T::kTemplateArgsLeft, // <
|
||||||
|
T::kIdentifier, // d
|
||||||
|
T::kTemplateArgsRight, // >
|
||||||
|
T::kParenLeft, // (
|
||||||
|
T::kParenRight, // )
|
||||||
|
T::kTemplateArgsRight, // >
|
||||||
|
T::kEOF,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}));
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
} // namespace tint::reader::wgsl
|
} // namespace tint::reader::wgsl
|
||||||
|
|
Loading…
Reference in New Issue