boolean (@NotNull CharSequence fileContent, @NotNull ParserDefinition parserDefinition, @NotNull TokenSet noWSRequireBeforeTokenSet, @NotNull TokenSet noWSRequireAfterTokenSet, @NotNull TokenSet stringsTokenSet) { Lexer lexer = parserDefinition.createLexer(null); lexer.start(fileContent); if (!isMinified(lexer, parserDefinition, noWSRequireBeforeTokenSet, noWSRequireAfterTokenSet, stringsTokenSet)) { return false; } else if (lexer.getTokenType() == null) { // whole file had been considered return true; } int startOffset = fileContent.length() - COUNT_OF_CONSIDERING_CHARACTERS_FROM_END_OF_FILE; if (startOffset <= 0) { return true; } while (lexer.getTokenType() != null && lexer.getTokenStart() < startOffset) lexer.advance(); if (lexer.getTokenType() == null || (fileContent.length() - lexer.getTokenStart() < MIN_SIZE * 2)) { return true; } return isMinified(lexer, parserDefinition, noWSRequireBeforeTokenSet, noWSRequireAfterTokenSet, stringsTokenSet); }