public MatchMatrix(IReadOnlyList <string> pattern, IReadOnlyList <string> search, int maxOffset = DefaultMaxOffset) { this.pattern = pattern; this.search = search; this.maxOffset = maxOffset; matches = new StraightMatch[maxOffset + 1]; for (int i = 0; i <= maxOffset; i++) { matches[i] = new StraightMatch(pattern.Count); } }
public MatchMatrix(IReadOnlyList <string> pattern, IReadOnlyList <string> search, int maxOffset = DefaultMaxOffset, LineRange range = default) { if (range == default) { range = new LineRange { length = search.Count } } ; patternLength = pattern.Count; this.range = range; this.maxOffset = maxOffset; WorkingRange = new LineRange { first = range.start - maxOffset, last = range.end - patternLength }; matches = new StraightMatch[maxOffset + 1]; for (int i = 0; i <= maxOffset; i++) { matches[i] = new StraightMatch(pattern, search, range); } }