@Override public void tokenize(SourceCode sourceCode, Tokens tokenEntries) { final String fileName = sourceCode.getFileName(); final JavaTokenFilter tokenFilter = createTokenFilter(sourceCode); final ConstructorDetector constructorDetector = new ConstructorDetector(ignoreIdentifiers); Token currentToken = (Token) tokenFilter.getNextToken(); while (currentToken != null) { processToken(tokenEntries, fileName, currentToken, constructorDetector); currentToken = (Token) tokenFilter.getNextToken(); } tokenEntries.add(TokenEntry.getEOF()); }
private boolean hasPreviousDupe(TokenEntry mark1, TokenEntry mark2) { if (mark1.getIndex() == 0) { return false; } return !matchEnded(ma.tokenAt(-1, mark1), ma.tokenAt(-1, mark2)); }
@Override public void setProperties(Properties properties) { super.setProperties(properties); ((CPPTokenizer) getTokenizer()).setProperties(properties); } }
public void tokenize(SourceCode tokens, Tokens tokenEntries) throws IOException { tokenEntries.add(new TokenEntry("t1", "src", 1)); tokenEntries.add(new TokenEntry("t2", "src", 1)); tokenEntries.add(new TokenEntry("t3", "src", 2)); tokenEntries.add(new TokenEntry("t1", "src", 4)); tokenEntries.add(new TokenEntry("t3", "src", 4)); tokenEntries.add(new TokenEntry("t3", "src", 4)); tokenEntries.add(TokenEntry.getEOF()); } };
public int getLineCount(TokenEntry mark, Match match) { TokenEntry endTok = get(mark.getIndex() + match.getTokenCount() - 1); if (endTok == TokenEntry.EOF) { endTok = get(mark.getIndex() + match.getTokenCount() - 2); } return endTok.getBeginLine() - mark.getBeginLine() + 1; }
public int getEndIndex() { return getMark(0).getToken().getIndex() + getTokenCount() - 1; }
private CPDRenderer createRenderer() { if (format.equals(TEXT_FORMAT)) { return new SimpleRenderer(); } else if (format.equals(CSV_FORMAT)) { return new CSVRenderer(); } return new XMLRenderer(); }
@Override public int compareTo(Match other) { int diff = other.getTokenCount() - getTokenCount(); if (diff != 0) { return diff; } return getFirstMark().compareTo(other.getFirstMark()); }
private void add(SourceCode sourceCode) throws IOException { if (configuration.isSkipLexicalErrors()) { addAndSkipLexicalErrors(sourceCode); } else { addAndThrowLexicalError(sourceCode); } }
/** * Within Sonar Ecosystem - absolute path to file containing code, * whereas in fact existence of such file not guaranteed - see {@link StringCodeLoader}. */ public String getFileName() { return cl.getFileName(); } }
public JavaLanguage(Properties properties) { super("Java", "java", new JavaTokenizer(), ".java"); setProperties(properties); }
public void go() { matchAlgorithm = new MatchAlgorithm(source, tokens, configuration.getMinimumTileSize(), listener); matchAlgorithm.findMatches(); }
@Override public final void setProperties(Properties properties) { JavaTokenizer tokenizer = (JavaTokenizer) getTokenizer(); tokenizer.setProperties(properties); } }
@Override public final void setProperties(Properties properties) { CsTokenizer tokenizer = (CsTokenizer) getTokenizer(); tokenizer.setProperties(properties); } }
@Override public final void setProperties(Properties properties) { ApexTokenizer tokenizer = (ApexTokenizer) getTokenizer(); tokenizer.setProperties(properties); } }
private int countDuplicateTokens(TokenEntry mark1, TokenEntry mark2) { int index = 0; while (!matchEnded(ma.tokenAt(index, mark1), ma.tokenAt(index, mark2))) { index++; } return index; }
@Override public final void setProperties(Properties properties) { ((PLSQLTokenizer) getTokenizer()).setProperties(properties); } }
public ApexLanguage(Properties properties) { super("Apex", "apex", new ApexTokenizer(), ".cls"); setProperties(properties); }
public CPPLanguage(Properties properties) { super("C++", "cpp", new CPPTokenizer(), ".h", ".hpp", ".hxx", ".c", ".cpp", ".cxx", ".cc", ".C"); setProperties(properties); }