private void processCPDSuppression(final GenericToken currentToken) { // Check if a comment is altering the suppression state GenericToken comment = currentToken.getPreviousComment(); while (comment != null) { if (comment.getImage().contains("CPD-OFF")) { discardingSuppressing = true; break; } if (comment.getImage().contains("CPD-ON")) { discardingSuppressing = false; break; } comment = comment.getPreviousComment(); } }
@Override public void tokenize(SourceCode sourceCode, Tokens tokenEntries) { StringBuilder buffer = sourceCode.getCodeBuffer(); try (Reader reader = IOUtil.skipBOM(new StringReader(maybeSkipBlocks(buffer.toString())))) { final TokenFilter tokenFilter = new JavaCCTokenFilter(new CppTokenManager(reader)); GenericToken currentToken = tokenFilter.getNextToken(); while (currentToken != null) { tokenEntries.add(new TokenEntry(currentToken.getImage(), sourceCode.getFileName(), currentToken.getBeginLine())); currentToken = tokenFilter.getNextToken(); } tokenEntries.add(TokenEntry.getEOF()); System.err.println("Added " + sourceCode.getFileName()); } catch (TokenMgrError | IOException err) { err.printStackTrace(); System.err.println("Skipping " + sourceCode.getFileName() + " due to parse error"); tokenEntries.add(TokenEntry.getEOF()); } }
@Override public final GenericToken getNextToken() { GenericToken currentToken = (GenericToken) tokenManager.getNextToken(); while (!currentToken.getImage().isEmpty()) { analyzeToken(currentToken); processCPDSuppression(currentToken); if (!isDiscarding()) { return currentToken; } currentToken = (GenericToken) tokenManager.getNextToken(); } return null; }
@Override public void tokenize(SourceCode sourceCode, Tokens tokenEntries) { StringBuilder buffer = sourceCode.getCodeBuffer(); try (Reader reader = IOUtil.skipBOM(new StringReader(maybeSkipBlocks(buffer.toString())))) { final TokenFilter tokenFilter = new JavaCCTokenFilter(new CppTokenManager(reader)); GenericToken currentToken = tokenFilter.getNextToken(); while (currentToken != null) { tokenEntries.add(new TokenEntry(currentToken.getImage(), sourceCode.getFileName(), currentToken.getBeginLine())); currentToken = tokenFilter.getNextToken(); } tokenEntries.add(TokenEntry.getEOF()); System.err.println("Added " + sourceCode.getFileName()); } catch (TokenMgrError | IOException err) { err.printStackTrace(); System.err.println("Skipping " + sourceCode.getFileName() + " due to parse error"); tokenEntries.add(TokenEntry.getEOF()); } }
@Override public final GenericToken getNextToken() { GenericToken currentToken = (GenericToken) tokenManager.getNextToken(); while (!currentToken.getImage().isEmpty()) { analyzeToken(currentToken); processCPDSuppression(currentToken); if (!isDiscarding()) { return currentToken; } currentToken = (GenericToken) tokenManager.getNextToken(); } return null; }
private void processCPDSuppression(final GenericToken currentToken) { // Check if a comment is altering the suppression state GenericToken comment = currentToken.getPreviousComment(); while (comment != null) { if (comment.getImage().contains("CPD-OFF")) { discardingSuppressing = true; break; } if (comment.getImage().contains("CPD-ON")) { discardingSuppressing = false; break; } comment = comment.getPreviousComment(); } }