public override void InitValidation(ValidationState context) {
int positionsCount = positions.Count;
List<RangePositionInfo> runningPositions = context.RunningPositions;
if (runningPositions != null) {
Debug.Assert(minMaxNodesCount != 0);
runningPositions.Clear();
}
else {
runningPositions = new List<RangePositionInfo>();
context.RunningPositions = runningPositions;
}
RangePositionInfo rposInfo = new RangePositionInfo();
rposInfo.curpos = firstpos.Clone();
rposInfo.rangeCounters = new decimal[minMaxNodesCount];
runningPositions.Add(rposInfo);
context.CurrentState.NumberOfRunningPos = 1;
context.HasMatched = rposInfo.curpos.Get(endMarkerPos);
}