Request for help understanding the ScoreMatchL function

I have been analyzing the parserm.h file, and I was hoping someone might help me understand what the following code snippet is doing in the ScoreMatchL function.

    for (i=0 : i<number_matched : i++) {
        while (match_list-->i == -1) {
            if (i == number_matched-1) { number_matched--; break; }
            for (j=i : j<number_matched-1 : j++) {
                match_list-->j = match_list-->(j+1);
                match_scores-->j = match_scores-->(j+1);

It seems to be deleting something from the match_list and the match_scores, but I cannot discern precisely what.

Is it just deleting matches and the corresponding scores that have been marked with a -1 earlier in the algorithm?


It would seem so. (And Ron Newcomb’s fatihful I7 version of the Parser seems to say as much.)

Thanks, Felix!