PR Review
This commit is contained in:
@ -19,16 +19,7 @@ import net.sourceforge.pmd.lang.ast.TokenMgrError;
|
|||||||
*/
|
*/
|
||||||
public abstract class AntlrTokenizer implements Tokenizer {
|
public abstract class AntlrTokenizer implements Tokenizer {
|
||||||
|
|
||||||
private final Lexer lexer;
|
protected abstract Lexer getLexerForSource(final CharStream charStream);
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor.
|
|
||||||
*
|
|
||||||
* @param lexer lexer.
|
|
||||||
*/
|
|
||||||
public AntlrTokenizer(final Lexer lexer) {
|
|
||||||
this.lexer = lexer;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void tokenize(final SourceCode sourceCode, final Tokens tokenEntries) {
|
public void tokenize(final SourceCode sourceCode, final Tokens tokenEntries) {
|
||||||
@ -36,11 +27,12 @@ public abstract class AntlrTokenizer implements Tokenizer {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
final CharStream charStream = CharStreams.fromString(buffer.toString());
|
final CharStream charStream = CharStreams.fromString(buffer.toString());
|
||||||
lexer.reset();
|
|
||||||
lexer.setInputStream(charStream);
|
Lexer lexer = getLexerForSource(charStream);
|
||||||
|
|
||||||
lexer.removeErrorListeners();
|
lexer.removeErrorListeners();
|
||||||
lexer.addErrorListener(new ErrorHandler());
|
lexer.addErrorListener(new ErrorHandler());
|
||||||
|
|
||||||
Token token = lexer.nextToken();
|
Token token = lexer.nextToken();
|
||||||
|
|
||||||
while (token.getType() != Token.EOF) {
|
while (token.getType() != Token.EOF) {
|
||||||
|
@ -5,13 +5,17 @@
|
|||||||
package net.sourceforge.pmd.cpd;
|
package net.sourceforge.pmd.cpd;
|
||||||
|
|
||||||
import net.sourceforge.pmd.lang.swift.antlr4.SwiftLexer;
|
import net.sourceforge.pmd.lang.swift.antlr4.SwiftLexer;
|
||||||
|
import org.antlr.v4.runtime.CharStream;
|
||||||
|
import org.antlr.v4.runtime.Lexer;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SwiftTokenizer
|
* SwiftTokenizer
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public class SwiftTokenizer extends AntlrTokenizer {
|
public class SwiftTokenizer extends AntlrTokenizer {
|
||||||
public SwiftTokenizer() {
|
|
||||||
super(new SwiftLexer(null));
|
@Override
|
||||||
|
protected Lexer getLexerForSource(final CharStream charStream) {
|
||||||
|
return new SwiftLexer(charStream);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user