public override int FindBack(int stringIndex, int lastIndex, String testString, MatchResultImpl matchResult) { int res = 0; int startSearch = lastIndex; for (; startSearch >= stringIndex; startSearch--) { int saveStart = matchResult.GetStart(groupIndex); matchResult.SetStart(groupIndex, startSearch); res = kid.Matches(startSearch, testString, matchResult); if (res >= 0) { res = startSearch; break; } else { matchResult.SetStart(groupIndex, saveStart); } } return(res); }
public override int Matches(int stringIndex, String testString, MatchResultImpl matchResult) { int start = matchResult.GetStart(groupIndex); matchResult.SetStart(groupIndex, stringIndex); int shift = kid.Matches(stringIndex, testString, matchResult); if (shift >= 0) { return(shift); } matchResult.SetStart(groupIndex, start); return(-1); }
public override int FindBack(int stringIndex, int lastIndex, String testString, MatchResultImpl matchResult) { int res = kid.FindBack(stringIndex, lastIndex, testString, matchResult); if (res >= 0) { matchResult.SetStart(groupIndex, res); } return(res); }
/// <summary> /// Returns stringIndex+shift, the next position to match /// </summary> /// public override int Matches(int stringIndex, String testString, MatchResultImpl matchResult) { if (children == null) { return(-1); } int start = matchResult.GetStart(groupIndex); matchResult.SetStart(groupIndex, stringIndex); int size = children.Count; for (int i = 0; i < size; i++) { AbstractSet e = (AbstractSet)children[i]; int shift = e.Matches(stringIndex, testString, matchResult); if (shift >= 0) { return(shift); } } matchResult.SetStart(groupIndex, start); return(-1); }