}
private boolean markIncludedProblems(int start, int end) {
boolean foundProblems = false;
next: for (int i = 0, max = this.problems.length; i < max; i++) {
CategorizedProblem problem = this.problems[i];
if(this.usedOrIrrelevantProblems[i]) continue next;
switch(problem.getID()) {
case IProblem.ParsingErrorOnKeywordNoSuggestion :
case IProblem.ParsingErrorOnKeyword :
case IProblem.ParsingError :
case IProblem.ParsingErrorNoSuggestion :
case IProblem.ParsingErrorInsertTokenBefore :
case IProblem.ParsingErrorInsertTokenAfter :
case IProblem.ParsingErrorDeleteToken :
case IProblem.ParsingErrorDeleteTokens :
case IProblem.ParsingErrorMergeTokens :
case IProblem.ParsingErrorInvalidToken :
case IProblem.ParsingErrorMisplacedConstruct :
case IProblem.ParsingErrorReplaceTokens :
case IProblem.ParsingErrorNoSuggestionForTokens :
case IProblem.ParsingErrorUnexpectedEOF :
case IProblem.ParsingErrorInsertToComplete :
case IProblem.ParsingErrorInsertToCompleteScope :
case IProblem.ParsingErrorInsertToCompletePhrase :
case IProblem.EndOfSource :
case IProblem.InvalidHexa :
case IProblem.InvalidOctal :
case IProblem.InvalidCharacterConstant :
case IProblem.InvalidEscape :
case IProblem.InvalidInput :
case IProblem.InvalidUnicodeEscape :
case IProblem.InvalidFloat :
case IProblem.NullSourceString :
case IProblem.UnterminatedString :
case IProblem.UnterminatedComment :
case IProblem.InvalidDigit :
break;
default:
this.usedOrIrrelevantProblems[i] = true;
continue next;
}
int problemStart = problem.getSourceStart();
int problemEnd = problem.getSourceEnd();
if ((start <= problemStart) && (problemStart <= end) ||
(start <= problemEnd) && (problemEnd <= end)) {
this.usedOrIrrelevantProblems[i] = true;
foundProblems = true;
}