private PredefinedObjectTypeSyntax ParseMultisampledTextureType(SyntaxToken token)
{
var lessThan = Match(SyntaxKind.LessThanToken);
var type = ParseScalarOrVectorType();
var arguments = new List<SyntaxNode> { type };
if (Current.Kind == SyntaxKind.CommaToken)
{
var comma = Match(SyntaxKind.CommaToken);
ExpressionSyntax samples;
try
{
CommaIsSeparatorStack.Push(true);
_greaterThanTokenIsNotOperator = true;
samples = ParseExpression();
}
finally
{
_greaterThanTokenIsNotOperator = false;
CommaIsSeparatorStack.Pop();
}
arguments.Add(comma);
arguments.Add(samples);
}
var greaterThan = Match(SyntaxKind.GreaterThanToken);
var typeArgumentList = new TemplateArgumentListSyntax(lessThan,
new SeparatedSyntaxList<ExpressionSyntax>(arguments),
greaterThan);
return new PredefinedObjectTypeSyntax(token, typeArgumentList);
}