From 1796d2a7a518302a842d014605e7891f3ddd8e18 Mon Sep 17 00:00:00 2001 From: Tomi De Lucca Date: Sun, 19 Aug 2018 03:56:07 -0300 Subject: [PATCH] PR Review --- .../net/sourceforge/pmd/cpd/AntlrTokenizer.java | 16 ++++------------ .../net/sourceforge/pmd/cpd/SwiftTokenizer.java | 8 ++++++-- 2 files changed, 10 insertions(+), 14 deletions(-) diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/cpd/AntlrTokenizer.java b/pmd-core/src/main/java/net/sourceforge/pmd/cpd/AntlrTokenizer.java index 388e029fd5..318388c38c 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/cpd/AntlrTokenizer.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/cpd/AntlrTokenizer.java @@ -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) { diff --git a/pmd-swift/src/main/java/net/sourceforge/pmd/cpd/SwiftTokenizer.java b/pmd-swift/src/main/java/net/sourceforge/pmd/cpd/SwiftTokenizer.java index 49e4661b23..ce13457502 100644 --- a/pmd-swift/src/main/java/net/sourceforge/pmd/cpd/SwiftTokenizer.java +++ b/pmd-swift/src/main/java/net/sourceforge/pmd/cpd/SwiftTokenizer.java @@ -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); } }