misplacementRecovery method
void
misplacementRecovery()
Implementation
void misplacementRecovery(SecondaryRepairInfo repair, List<int> stack,
int stack_top, int last_index, bool stack_flag) {
var previous_loc = buffer[2], stack_deletions = 0;
for (var top = stack_top - 1; top >= 0; top--) {
if (locationStack[top] < previous_loc) stack_deletions++;
previous_loc = locationStack[top];
var parse_distance =
parseCheck(stack, top, tokStream.getKind(buffer[2]), 3),
j = (parse_distance == MAX_DISTANCE ? last_index : parse_distance);
if ((parse_distance > MIN_DISTANCE) &&
(j - stack_deletions) > (repair.distance - repair.numDeletions)) {
repair.stackPosition = top;
repair.distance = j;
repair.numDeletions = stack_deletions;
repair.recoveryOnNextStack = stack_flag;
}
}
return;
}