private void MultiPart() { Expect(3); Console.WriteLine("Entering multipart ..."); var part = new MultiPart(); Part parent; var success = TrySaveToParent(part, out parent); if (success) { part.Parent = parent; } PushPart(part); BodyPart(); while (la.kind == 3) { BodyPart(); } Field(); CurrentMultiPart.Type = t.val.TrimQuotes(); while (la.kind == 1 || la.kind == 3 || la.kind == 5) { CurrentListType = ParamListType.MultiPart; FieldOrParList(); CurrentMultiPart.Extensions.Add(t.val.TrimQuotes()); CurrentListType = ParamListType.Other; } Expect(4); Console.WriteLine("Leaving multipart."); _stack.Pop(); }