static void DeserializeArray(TextReader reader, ObjectBuilder builder)
{
int c;
builder.StartArray();
while(true)
{
c = reader.Peek();
if (c == -1) throw new DeserializationException("Unexpected end of stream", reader);
if (c == ']')
{
reader.Read(); // skip the ]
break;
}
_DeserializeMember(reader, builder);
Methods.ConsumeWhiteSpace(reader);
c = reader.Read();
if(c == ',') continue;
if(c == ']') break;
if(c == -1) throw new DeserializationException("Unexpected end of stream", reader);
throw new DeserializationException("Expected , or ], found "+(char)c, reader);
}
builder.EndArray();
}