public List<Parameter> typedarglist()
{
List<Parameter> args = new List<Parameter>();
while (Peek(TokenType.ID))
{
Parameter t = fpdef();
if (PeekAndDiscard(TokenType.EQ))
{
t.test = test();
}
args.Add(t);
if (!PeekAndDiscard(TokenType.COMMA))
return args;
}
while (PeekAndDiscard(TokenType.OP_STAR))
{
Parameter t = null;
if (Peek(TokenType.ID))
t = fpdef();
args.Add(t);
if (!PeekAndDiscard(TokenType.COMMA))
return args;
}
if (PeekAndDiscard(TokenType.OP_STARSTAR))
{
args.Add(fpdef());
}
return args;
}