Deprecate PMD LanguageModule for languages, that only support CPD

This commit is contained in:
Andreas Dangel
2018-11-26 13:55:35 +01:00
parent 32002664f7
commit 10e27ca3c0
35 changed files with 100 additions and 353 deletions

View File

@ -13,11 +13,9 @@ import java.util.Properties;
import net.sourceforge.pmd.PMD;
import net.sourceforge.pmd.cpd.token.JavaCCTokenFilter;
import net.sourceforge.pmd.cpd.token.TokenFilter;
import net.sourceforge.pmd.lang.LanguageRegistry;
import net.sourceforge.pmd.lang.LanguageVersionHandler;
import net.sourceforge.pmd.lang.ast.GenericToken;
import net.sourceforge.pmd.lang.ast.TokenMgrError;
import net.sourceforge.pmd.lang.cpp.CppLanguageModule;
import net.sourceforge.pmd.lang.cpp.CppTokenManager;
import net.sourceforge.pmd.util.IOUtil;
/**
@ -55,11 +53,7 @@ public class CPPTokenizer implements Tokenizer {
public void tokenize(SourceCode sourceCode, Tokens tokenEntries) {
StringBuilder buffer = sourceCode.getCodeBuffer();
try (Reader reader = IOUtil.skipBOM(new StringReader(maybeSkipBlocks(buffer.toString())))) {
LanguageVersionHandler languageVersionHandler = LanguageRegistry.getLanguage(CppLanguageModule.NAME)
.getDefaultVersion().getLanguageVersionHandler();
final TokenFilter tokenFilter = new JavaCCTokenFilter(
languageVersionHandler.getParser(languageVersionHandler.getDefaultParserOptions())
.getTokenManager(sourceCode.getFileName(), reader));
final TokenFilter tokenFilter = new JavaCCTokenFilter(new CppTokenManager(reader));
GenericToken currentToken = tokenFilter.getNextToken();
while (currentToken != null) {

View File

@ -11,7 +11,9 @@ import net.sourceforge.pmd.lang.rule.RuleViolationFactory;
/**
* Implementation of LanguageVersionHandler for the C++ Language.
* @deprecated There is no full PMD support for c++.
*/
@Deprecated
public class CppHandler extends AbstractLanguageVersionHandler {
@Override

View File

@ -8,7 +8,10 @@ import net.sourceforge.pmd.lang.BaseLanguageModule;
/**
* Implementation of the C/C++ Language Module.
*
* @deprecated There is no full PMD support for c++.
*/
@Deprecated
public class CppLanguageModule extends BaseLanguageModule {
/** The name, that can be used to display the language in UI. */

View File

@ -16,7 +16,10 @@ import net.sourceforge.pmd.lang.ast.ParseException;
/**
* Adapter for the C++ Parser.
*
* @deprecated There is no full PMD support for c++.
*/
@Deprecated
public class CppParser extends AbstractParser {
/**

View File

@ -1,33 +0,0 @@
/**
* BSD-style license; for more info see http://pmd.sourceforge.net/license.html
*/
package net.sourceforge.pmd;
import java.util.Arrays;
import java.util.Collection;
import org.junit.runners.Parameterized.Parameters;
import net.sourceforge.pmd.lang.LanguageRegistry;
import net.sourceforge.pmd.lang.LanguageVersion;
import net.sourceforge.pmd.lang.cpp.CppLanguageModule;
public class LanguageVersionTest extends AbstractLanguageVersionTest {
public LanguageVersionTest(String name, String terseName, String version, LanguageVersion expected) {
super(name, terseName, version, expected);
}
@Parameters
public static Collection<Object[]> data() {
return Arrays.asList(new Object[][] {
{
CppLanguageModule.NAME,
CppLanguageModule.TERSE_NAME,
"",
LanguageRegistry.getLanguage(CppLanguageModule.NAME).getDefaultVersion(),
},
});
}
}