private IEnumerable <ParsingEvent> GetMappingEvents(string anchor) { ParsingEventCloner cloner = new ParsingEventCloner(); int nesting = 0; return(from e in (from e in _events.FromAnchor(anchor) select e.Value).TakeWhile((ParsingEvent e) => (nesting += e.NestingIncrease) >= 0) select cloner.Clone(e)); }
private IEnumerable <ParsingEvent> GetMappingEvents(AnchorName anchor) { var cloner = new ParsingEventCloner(); var nesting = 0; return(events.FromAnchor(anchor) .Select(e => e.Value) .TakeWhile(e => (nesting += e.NestingIncrease) >= 0) .Select(e => cloner.Clone(e))); }
private IEnumerable <ParsingEvent> GetMappingEvents(string mappingAlias) { var cloner = new ParsingEventCloner(); var nesting = 0; return(_allEvents .SkipWhile(e => { var mappingStart = e as MappingStart; return mappingStart == null || mappingStart.Anchor != mappingAlias; }) .Skip(1) .TakeWhile(e => (nesting += e.NestingIncrease) >= 0) .Select(e => cloner.Clone(e)) .ToList()); }
private IEnumerable<ParsingEvent> GetMappingEvents(string mappingAlias) { var cloner = new ParsingEventCloner(); var nesting = 0; return _allEvents .SkipWhile(e => { var mappingStart = e as MappingStart; return mappingStart == null || mappingStart.Anchor != mappingAlias; }) .Skip(1) .TakeWhile(e => (nesting += e.NestingIncrease) >= 0) .Select(e => cloner.Clone(e)) .ToList(); }