public static void InlineIncludeRules(Raw raw, HighlighterSet highlighterSet) { if (raw == null) { return; } Collector collector = new Collector(highlighterSet); foreach (RawList list in raw.lists) { if (list.name != null) { collector.listByName[list.name.ToLowerInvariant()] = list; } } foreach (Context context in raw.contexts) { if (context.name != null) { collector.contextByName[context.name.ToLowerInvariant()] = context; } } foreach (ItemData itemData in raw.itemDatas) { if (itemData.name != null) { collector.itemDataByName[itemData.name.ToLowerInvariant()] = itemData; } } foreach (Context context in raw.contexts) { AddExternalContext(collector, ref context.lineEndContext); AddExternalContext(collector, ref context.fallthroughContext); AddRulesExternalContext(collector, context.rules); } foreach (Context context in raw.contexts) { RecursiveInlineIncludeRules(context, collector); } raw.lists.AddRange(collector.additionLists); raw.contexts.AddRange(collector.additionContexts); raw.itemDatas.AddRange(collector.additionItemDatas); }
public Collector(HighlighterSet highlighterSet) { this.highlighterSet = highlighterSet; }