void ParseMain(MainItemTag tag, uint value) { LocalIndexes indexes = null; switch (tag) { case MainItemTag.Collection: ReportCollection collection = new ReportCollection(); collection.Parent = CurrentCollection; collection.Type = (CollectionType)value; CurrentCollection = collection; indexes = collection.Indexes; break; case MainItemTag.EndCollection: CurrentCollection = CurrentCollection.Parent; break; case MainItemTag.Input: case MainItemTag.Output: case MainItemTag.Feature: ParseDataMain(tag, value, out indexes); break; } if (indexes != null) { ParseMainIndexes(indexes); } }
/// <summary> /// Initializes a new instance of the <see cref="ReportDescriptorParser"/> class. /// </summary> public ReportDescriptorParser() { RootCollection = new ReportCollection(); GlobalItemStateStack = new List <IDictionary <GlobalItemTag, EncodedItem> >(); LocalItemState = new List <KeyValuePair <LocalItemTag, uint> >(); Reports = new List <Report>(); Clear(); }