PR Review

This commit is contained in:
Tomi De Lucca
2018-08-19 03:56:07 -03:00
parent 1812880c47
commit 1796d2a7a5
2 changed files with 10 additions and 14 deletions

View File

@ -19,16 +19,7 @@ import net.sourceforge.pmd.lang.ast.TokenMgrError;
*/
public abstract class AntlrTokenizer implements Tokenizer {
private final Lexer lexer;
/**
* Constructor.
*
* @param lexer lexer.
*/
public AntlrTokenizer(final Lexer lexer) {
this.lexer = lexer;
}
protected abstract Lexer getLexerForSource(final CharStream charStream);
@Override
public void tokenize(final SourceCode sourceCode, final Tokens tokenEntries) {
@ -36,11 +27,12 @@ public abstract class AntlrTokenizer implements Tokenizer {
try {
final CharStream charStream = CharStreams.fromString(buffer.toString());
lexer.reset();
lexer.setInputStream(charStream);
Lexer lexer = getLexerForSource(charStream);
lexer.removeErrorListeners();
lexer.addErrorListener(new ErrorHandler());
Token token = lexer.nextToken();
while (token.getType() != Token.EOF) {

View File

@ -5,13 +5,17 @@
package net.sourceforge.pmd.cpd;
import net.sourceforge.pmd.lang.swift.antlr4.SwiftLexer;
import org.antlr.v4.runtime.CharStream;
import org.antlr.v4.runtime.Lexer;
/**
* SwiftTokenizer
*/
public class SwiftTokenizer extends AntlrTokenizer {
public SwiftTokenizer() {
super(new SwiftLexer(null));
@Override
protected Lexer getLexerForSource(final CharStream charStream) {
return new SwiftLexer(charStream);
}
}