public List <PlainTextSymbol> Parse(string s, out List <IndexRange> list_0) { List <PlainTextSymbol> list = new List <PlainTextSymbol>(); List <IndexRange> ranges = this.GetIndexRanges(s); foreach (IndexRange ir in ranges) { PlainTextSymbol item = new PlainTextSymbol(this.Create(s, ir), ir.Start, null); list.Add(item); } list_0 = IndexRange.GetExceptRanges(ranges, s); return(list); }
private static List <IndexRange> GetNonAtomicLogicalCharRanges(string input, int startIdx, int nextIdx, List <PlainTextSymbol> ptslist) { var list = ptslist.Where(k => k.StartIndex >= startIdx && k.NextIndex <= nextIdx) .Select(k => new IndexRange(k.StartIndex, k.Length)).ToList(); var exceptRanges = IndexRange.GetExceptRanges(list, startIdx, nextIdx); foreach (var range in exceptRanges) { for (int i = range.Start; i < range.NextStart; i++) { list.Add(new IndexRange(i, 1)); } } return(list); }
private List <PlainTextSymbol> Parse(string s, IndexRange r, out List <IndexRange> exp) { var ptslist = new List <PlainTextSymbol>(); var indexRanges = this.GetIndexRanges(s.Substring(r.Start, r.Length)); List <IndexRange> list3 = new List <IndexRange>(); foreach (IndexRange indexRange in indexRanges) { IndexRange indexRange2 = new IndexRange(indexRange.Start + r.Start, indexRange.Length); list3.Add(indexRange2); PlainTextSymbol item = new PlainTextSymbol(this.Create(s, indexRange2), indexRange2.Start, null); ptslist.Add(item); } exp = IndexRange.GetExceptRanges(list3, r.Start, r.NextStart); return(ptslist); }
public List <IndexRange> GetExceptRanges(string s) { var ranges = this.GetIndexRanges(s); return(IndexRange.GetExceptRanges(ranges, s)); }