Merge branch 'master' into issue-4349-cleanup-deprecations

This commit is contained in:
Andreas Dangel
2024-02-08 18:23:41 +01:00
416 changed files with 2924 additions and 4282 deletions

View File

@ -32,9 +32,6 @@ options {
PARSER_BEGIN(CppParserImpl)
package net.sourceforge.pmd.lang.cpp.ast;
import net.sourceforge.pmd.lang.ast.impl.javacc.CharStream;
import net.sourceforge.pmd.lang.ast.TokenMgrError;
public final class CppParserImpl {
}

View File

@ -5,11 +5,11 @@
package net.sourceforge.pmd.lang.cpp;
import net.sourceforge.pmd.cpd.CpdLanguageProperties;
import net.sourceforge.pmd.cpd.Tokenizer;
import net.sourceforge.pmd.cpd.CpdLexer;
import net.sourceforge.pmd.cpd.internal.CpdLanguagePropertiesDefaults;
import net.sourceforge.pmd.lang.LanguagePropertyBundle;
import net.sourceforge.pmd.lang.LanguageRegistry;
import net.sourceforge.pmd.lang.cpp.cpd.CPPTokenizer;
import net.sourceforge.pmd.lang.cpp.cpd.CppCpdLexer;
import net.sourceforge.pmd.lang.impl.CpdOnlyLanguageModuleBase;
import net.sourceforge.pmd.properties.PropertyDescriptor;
import net.sourceforge.pmd.properties.PropertyFactory;
@ -52,7 +52,7 @@ public class CppLanguageModule extends CpdOnlyLanguageModuleBase {
}
@Override
public Tokenizer createCpdTokenizer(LanguagePropertyBundle bundle) {
return new CPPTokenizer(bundle);
public CpdLexer createCpdLexer(LanguagePropertyBundle bundle) {
return new CppCpdLexer(bundle);
}
}

View File

@ -9,8 +9,8 @@ import java.util.regex.Pattern;
import org.apache.commons.lang3.StringUtils;
import net.sourceforge.pmd.cpd.CpdLanguageProperties;
import net.sourceforge.pmd.cpd.impl.CpdLexerBase;
import net.sourceforge.pmd.cpd.impl.JavaCCTokenFilter;
import net.sourceforge.pmd.cpd.impl.TokenizerBase;
import net.sourceforge.pmd.lang.LanguagePropertyBundle;
import net.sourceforge.pmd.lang.TokenManager;
import net.sourceforge.pmd.lang.ast.impl.javacc.CharStream;
@ -23,8 +23,10 @@ import net.sourceforge.pmd.lang.document.TextDocument;
/**
* The C++ tokenizer.
*
* <p>Note: This class has been called CPPTokenizer in PMD 6</p>.
*/
public class CPPTokenizer extends TokenizerBase<JavaccToken> {
public class CppCpdLexer extends CpdLexerBase<JavaccToken> {
private boolean skipBlocks;
private Pattern skipBlocksStart;
@ -32,7 +34,7 @@ public class CPPTokenizer extends TokenizerBase<JavaccToken> {
private final boolean ignoreIdentifierAndLiteralSeqences;
private final boolean ignoreLiteralSequences;
public CPPTokenizer(LanguagePropertyBundle cppProperties) {
public CppCpdLexer(LanguagePropertyBundle cppProperties) {
ignoreLiteralSequences = cppProperties.getProperty(CpdLanguageProperties.CPD_IGNORE_LITERAL_SEQUENCES);
ignoreIdentifierAndLiteralSeqences = cppProperties.getProperty(CpdLanguageProperties.CPD_IGNORE_LITERAL_AND_IDENTIFIER_SEQUENCES);
String skipBlocksPattern = cppProperties.getProperty(CppLanguageModule.CPD_SKIP_BLOCKS);

View File

@ -20,7 +20,7 @@ class CppCharStreamTest {
public CharStream charStreamFor(String source) {
CppLanguageModule cpp = CppLanguageModule.getInstance();
TextDocument textDoc = TextDocument.readOnlyString(source, FileId.UNKNOWN, cpp.getDefaultVersion());
CPPTokenizer tokenizer = new CPPTokenizer(cpp.newPropertyBundle());
CppCpdLexer tokenizer = new CppCpdLexer(cpp.newPropertyBundle());
return tokenizer.newCharStream(textDoc);
}

View File

@ -10,15 +10,15 @@ import org.checkerframework.checker.nullness.qual.NonNull;
import org.junit.jupiter.api.Test;
import net.sourceforge.pmd.cpd.CpdLanguageProperties;
import net.sourceforge.pmd.cpd.Tokenizer;
import net.sourceforge.pmd.cpd.CpdLexer;
import net.sourceforge.pmd.cpd.Tokens;
import net.sourceforge.pmd.cpd.test.CpdTextComparisonTest;
import net.sourceforge.pmd.cpd.test.LanguagePropertyConfig;
import net.sourceforge.pmd.lang.cpp.CppLanguageModule;
class CPPTokenizerTest extends CpdTextComparisonTest {
class CppCpdLexerTest extends CpdTextComparisonTest {
CPPTokenizerTest() {
CppCpdLexerTest() {
super(CppLanguageModule.getInstance(), ".cpp");
}
@ -29,8 +29,8 @@ class CPPTokenizerTest extends CpdTextComparisonTest {
@Test
void testUTFwithBOM() {
Tokenizer tokenizer = newTokenizer(dontSkipBlocks());
Tokens tokens = tokenize(tokenizer, sourceCodeOf("\ufeffint start()\n{ int ret = 1;\nreturn ret;\n}\n"));
CpdLexer cpdLexer = newCpdLexer(dontSkipBlocks());
Tokens tokens = tokenize(cpdLexer, sourceCodeOf("\ufeffint start()\n{ int ret = 1;\nreturn ret;\n}\n"));
assertEquals(15, tokens.size());
}
@ -71,7 +71,7 @@ class CPPTokenizerTest extends CpdTextComparisonTest {
@Test
void testWrongUnicodeInIdentifier() {
expectTokenMgrError(" void main() { int ⚜ = __; }");
expectLexException(" void main() { int ⚜ = __; }");
}
@Test
@ -107,7 +107,7 @@ class CPPTokenizerTest extends CpdTextComparisonTest {
@Test
void testLexicalErrorFilename() {
expectTokenMgrError(sourceText("issue-1559"), dontSkipBlocks());
expectLexException(sourceText("issue-1559"), dontSkipBlocks());
}