! BestGuess makes the best guess it can out of the match list, assuming that ! everything in the match list is textually as good as everything else; ! however it ignores items marked as -1, and so marks anything it chooses. ! It returns -1 if there are no possible choices. ! ---------------------------------------------------------------------------- [ BestGuess earliest its_score best i; earliest=0; best=-1; for (i=0:ii >= 0) { its_score=match_scores-->i; if (its_score>best) { best=its_score; earliest=i; } } } #ifdef DEBUG; if (parser_trace>=4) { if (best<0) print " Best guess ran out of choices^"; else print " Best guess ", (the) match_list-->earliest, " (", match_list-->earliest, ")^"; } #endif; if (best<0) return -1; i=match_list-->earliest; match_list-->earliest=-1; bestguess_score = best; return i; ];