private List<Node> ParseMemberExpressionSuffix()
{
var suffixes = new List<Node>();
var cont = true;
while (cont)
{
switch (Next().Type)
{
case TokenType.LeftBracket:
suffixes.Add(ParseIndexSuffix());
break;
case TokenType.Dot:
suffixes.Add(ParsePropertyReferenceSuffix());
break;
case TokenType.LessThan:
Node node;
if (Speculate(ParseTypeDescriptorSuffix, out node))
{
suffixes.Add(node);
}
else
{
return suffixes;
}
break;
default:
cont = false;
break;
}
}
return suffixes;
}