Skip to content

Commit 9b20ec5

Browse files
committed
[core] Remove AntlrLexerBehavior
1 parent f90093c commit 9b20ec5

5 files changed

Lines changed: 15 additions & 75 deletions

File tree

pmd-core/src/main/java/net/sourceforge/pmd/cpd/impl/AntlrCpdLexer.java

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212

1313
import net.sourceforge.pmd.cpd.CpdLexer;
1414
import net.sourceforge.pmd.lang.TokenManager;
15-
import net.sourceforge.pmd.lang.ast.impl.antlr4.AntlrLexerBehavior;
1615
import net.sourceforge.pmd.lang.ast.impl.antlr4.AntlrToken;
1716
import net.sourceforge.pmd.lang.ast.impl.antlr4.AntlrTokenManager;
1817
import net.sourceforge.pmd.lang.document.TextDocument;
@@ -24,15 +23,7 @@ public abstract class AntlrCpdLexer extends CpdLexerBase<AntlrToken> {
2423
@Override
2524
protected final TokenManager<AntlrToken> makeLexerImpl(TextDocument doc) throws IOException {
2625
CharStream charStream = CharStreams.fromReader(doc.newReader(), doc.getFileId().getAbsolutePath());
27-
return new AntlrTokenManager(getLexerForSource(charStream), doc, getLexerBehavior());
28-
}
29-
30-
/**
31-
* Override this method to customize some aspects of the
32-
* lexer.
33-
*/
34-
protected AntlrLexerBehavior getLexerBehavior() {
35-
return new AntlrLexerBehavior();
26+
return new AntlrTokenManager(getLexerForSource(charStream), doc);
3627
}
3728

3829
protected abstract Lexer getLexerForSource(CharStream charStream);

pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/impl/antlr4/AntlrLexerBehavior.java

Lines changed: 0 additions & 32 deletions
This file was deleted.

pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/impl/antlr4/AntlrToken.java

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -33,25 +33,20 @@ public class AntlrToken implements GenericToken<AntlrToken> {
3333
* @param token The antlr token implementation
3434
* @param previousComment The previous comment
3535
* @param textDoc The text document
36+
*
37+
* @deprecated Don't create antlr tokens directly, use an {@link AntlrTokenManager}
3638
*/
37-
AntlrToken(final Token token, final AntlrToken previousComment, TextDocument textDoc, AntlrLexerBehavior behavior) {
39+
@Deprecated
40+
public AntlrToken(final Token token, final AntlrToken previousComment, TextDocument textDoc) {
3841
this.previousComment = previousComment;
3942
this.textDoc = textDoc;
40-
this.image = behavior.getTokenImage(token);
43+
this.image = token.getText();
4144
this.startOffset = token.getStartIndex();
4245
this.endOffset = token.getStopIndex() + 1; // exclusive
4346
this.channel = token.getChannel();
4447
this.kind = token.getType();
4548
}
4649

47-
/**
48-
* @deprecated Don't create antlr tokens directly, use an {@link AntlrTokenManager}
49-
*/
50-
@Deprecated
51-
public AntlrToken(final Token token, final AntlrToken previousComment, TextDocument textDoc) {
52-
this(token, previousComment, textDoc, new AntlrLexerBehavior());
53-
}
54-
5550
@Override
5651
public AntlrToken getNext() {
5752
return next;

pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/impl/antlr4/AntlrTokenManager.java

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,20 +20,12 @@ public class AntlrTokenManager implements TokenManager<AntlrToken> {
2020

2121
private final Lexer lexer;
2222
private final TextDocument textDoc;
23-
private final AntlrLexerBehavior behavior;
2423
private AntlrToken previousToken;
2524

2625

2726
public AntlrTokenManager(final Lexer lexer, final TextDocument textDocument) {
28-
this(lexer, textDocument, new AntlrLexerBehavior());
29-
}
30-
31-
public AntlrTokenManager(final Lexer lexer,
32-
final TextDocument textDocument,
33-
final AntlrLexerBehavior behavior) {
3427
this.lexer = lexer;
3528
this.textDoc = textDocument;
36-
this.behavior = behavior;
3729
resetListeners();
3830
}
3931

@@ -48,7 +40,7 @@ public AntlrToken getNextToken() {
4840

4941
private AntlrToken getNextTokenFromAnyChannel() {
5042
final AntlrToken previousComment = previousToken != null && previousToken.isHidden() ? previousToken : null;
51-
final AntlrToken currentToken = new AntlrToken(lexer.nextToken(), previousComment, textDoc, this.behavior);
43+
final AntlrToken currentToken = new AntlrToken(lexer.nextToken(), previousComment, textDoc);
5244
if (previousToken != null) {
5345
previousToken.next = currentToken;
5446
}

pmd-tsql/src/main/java/net/sourceforge/pmd/lang/tsql/cpd/TSqlCpdLexer.java

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,9 @@
88

99
import org.antlr.v4.runtime.CharStream;
1010
import org.antlr.v4.runtime.Lexer;
11-
import org.antlr.v4.runtime.Token;
1211

1312
import net.sourceforge.pmd.cpd.impl.AntlrCpdLexer;
14-
import net.sourceforge.pmd.lang.ast.impl.antlr4.AntlrLexerBehavior;
13+
import net.sourceforge.pmd.lang.ast.impl.antlr4.AntlrToken;
1514
import net.sourceforge.pmd.lang.tsql.ast.TSqlLexer;
1615

1716
/**
@@ -25,17 +24,12 @@ protected Lexer getLexerForSource(CharStream charStream) {
2524
}
2625

2726
@Override
28-
protected AntlrLexerBehavior getLexerBehavior() {
29-
return new AntlrLexerBehavior() {
30-
@Override
31-
protected String getTokenImage(Token token) {
32-
if (token.getType() == TSqlLexer.STRING) {
33-
// This path is for case-sensitive tokens
34-
return super.getTokenImage(token);
35-
}
36-
// normalize case sensitive tokens
37-
return token.getText().toUpperCase(Locale.ROOT);
38-
}
39-
};
27+
protected String getImage(AntlrToken token) {
28+
if (token.getKind() == TSqlLexer.STRING) {
29+
// This path is for case-sensitive tokens
30+
return token.getImage();
31+
}
32+
// normalize case-insensitive tokens
33+
return token.getImage().toUpperCase(Locale.ROOT);
4034
}
4135
}

0 commit comments

Comments
 (0)