diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/cpd/internal/JavaCCTokenizer.java b/pmd-core/src/main/java/net/sourceforge/pmd/cpd/internal/JavaCCTokenizer.java index 2c6b840242..423008868c 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/cpd/internal/JavaCCTokenizer.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/cpd/internal/JavaCCTokenizer.java @@ -17,7 +17,7 @@ import net.sourceforge.pmd.lang.ast.FileAnalysisException; import net.sourceforge.pmd.lang.ast.impl.javacc.CharStream; import net.sourceforge.pmd.lang.ast.impl.javacc.JavaccToken; import net.sourceforge.pmd.lang.ast.impl.javacc.JavaccTokenDocument.TokenDocumentBehavior; -import net.sourceforge.pmd.lang.ast.impl.javacc.io.MalformedSourceException; +import net.sourceforge.pmd.lang.ast.impl.javacc.MalformedSourceException; import net.sourceforge.pmd.lang.document.CpdCompat; import net.sourceforge.pmd.lang.document.TextDocument; diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/impl/javacc/io/BackslashEscapeTranslator.java b/pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/impl/javacc/BackslashEscapeTranslator.java similarity index 97% rename from pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/impl/javacc/io/BackslashEscapeTranslator.java rename to pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/impl/javacc/BackslashEscapeTranslator.java index 8d73be143c..4b9c0b258f 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/impl/javacc/io/BackslashEscapeTranslator.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/impl/javacc/BackslashEscapeTranslator.java @@ -2,7 +2,7 @@ * BSD-style license; for more info see http://pmd.sourceforge.net/license.html */ -package net.sourceforge.pmd.lang.ast.impl.javacc.io; +package net.sourceforge.pmd.lang.ast.impl.javacc; import static java.lang.Integer.min; diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/impl/javacc/CharStream.java b/pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/impl/javacc/CharStream.java index a56f7bdb1d..b1a5c8f0d1 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/impl/javacc/CharStream.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/impl/javacc/CharStream.java @@ -8,7 +8,6 @@ package net.sourceforge.pmd.lang.ast.impl.javacc; import java.io.EOFException; import net.sourceforge.pmd.lang.ast.impl.javacc.JavaccTokenDocument.TokenDocumentBehavior; -import net.sourceforge.pmd.lang.ast.impl.javacc.io.MalformedSourceException; import net.sourceforge.pmd.lang.document.Chars; import net.sourceforge.pmd.lang.document.FileLocation; import net.sourceforge.pmd.lang.document.TextDocument; diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/impl/javacc/io/EscapeTranslator.java b/pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/impl/javacc/EscapeTranslator.java similarity index 98% rename from pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/impl/javacc/io/EscapeTranslator.java rename to pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/impl/javacc/EscapeTranslator.java index 01b7f6c685..30431d995d 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/impl/javacc/io/EscapeTranslator.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/impl/javacc/EscapeTranslator.java @@ -2,7 +2,7 @@ * BSD-style license; for more info see http://pmd.sourceforge.net/license.html */ -package net.sourceforge.pmd.lang.ast.impl.javacc.io; +package net.sourceforge.pmd.lang.ast.impl.javacc; import static java.lang.Integer.min; diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/impl/javacc/io/JavaEscapeTranslator.java b/pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/impl/javacc/JavaEscapeTranslator.java similarity index 98% rename from pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/impl/javacc/io/JavaEscapeTranslator.java rename to pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/impl/javacc/JavaEscapeTranslator.java index dae5e1968e..a51f5ff08a 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/impl/javacc/io/JavaEscapeTranslator.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/impl/javacc/JavaEscapeTranslator.java @@ -2,7 +2,7 @@ * BSD-style license; for more info see http://pmd.sourceforge.net/license.html */ -package net.sourceforge.pmd.lang.ast.impl.javacc.io; +package net.sourceforge.pmd.lang.ast.impl.javacc; import net.sourceforge.pmd.lang.document.Chars; import net.sourceforge.pmd.lang.document.TextDocument; diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/impl/javacc/JavaccTokenDocument.java b/pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/impl/javacc/JavaccTokenDocument.java index 9f832d59cf..3538b6d4ff 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/impl/javacc/JavaccTokenDocument.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/impl/javacc/JavaccTokenDocument.java @@ -12,8 +12,6 @@ import org.checkerframework.checker.nullness.qual.Nullable; import net.sourceforge.pmd.cpd.internal.JavaCCTokenizer; import net.sourceforge.pmd.lang.ast.impl.TokenDocument; -import net.sourceforge.pmd.lang.ast.impl.javacc.io.EscapeTranslator; -import net.sourceforge.pmd.lang.ast.impl.javacc.io.MalformedSourceException; import net.sourceforge.pmd.lang.document.TextDocument; /** diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/impl/javacc/io/MalformedSourceException.java b/pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/impl/javacc/MalformedSourceException.java similarity index 94% rename from pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/impl/javacc/io/MalformedSourceException.java rename to pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/impl/javacc/MalformedSourceException.java index 1708a442e1..bc3471861e 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/impl/javacc/io/MalformedSourceException.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/impl/javacc/MalformedSourceException.java @@ -2,7 +2,7 @@ * BSD-style license; for more info see http://pmd.sourceforge.net/license.html */ -package net.sourceforge.pmd.lang.ast.impl.javacc.io; +package net.sourceforge.pmd.lang.ast.impl.javacc; import java.util.Objects; diff --git a/pmd-core/src/test/java/net/sourceforge/pmd/lang/ast/impl/javacc/io/CharStreamImplTest.java b/pmd-core/src/test/java/net/sourceforge/pmd/lang/ast/impl/javacc/CharStreamTest.java similarity index 72% rename from pmd-core/src/test/java/net/sourceforge/pmd/lang/ast/impl/javacc/io/CharStreamImplTest.java rename to pmd-core/src/test/java/net/sourceforge/pmd/lang/ast/impl/javacc/CharStreamTest.java index fb371404fe..d88fb446f8 100644 --- a/pmd-core/src/test/java/net/sourceforge/pmd/lang/ast/impl/javacc/io/CharStreamImplTest.java +++ b/pmd-core/src/test/java/net/sourceforge/pmd/lang/ast/impl/javacc/CharStreamTest.java @@ -2,29 +2,24 @@ * BSD-style license; for more info see http://pmd.sourceforge.net/license.html */ -package net.sourceforge.pmd.lang.ast.impl.javacc.io; +package net.sourceforge.pmd.lang.ast.impl.javacc; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.fail; +import static org.junit.Assert.assertThrows; import java.io.EOFException; import java.io.IOException; import java.util.Collections; -import org.junit.Rule; import org.junit.Test; -import org.junit.rules.ExpectedException; import net.sourceforge.pmd.lang.LanguageRegistry; import net.sourceforge.pmd.lang.LanguageVersion; -import net.sourceforge.pmd.lang.ast.impl.javacc.CharStream; import net.sourceforge.pmd.lang.ast.impl.javacc.JavaccTokenDocument.TokenDocumentBehavior; import net.sourceforge.pmd.lang.document.TextDocument; -public class CharStreamImplTest { +public class CharStreamTest { - @Rule - public ExpectedException expect = ExpectedException.none(); private LanguageVersion dummyVersion = LanguageRegistry.getDefaultLanguage().getDefaultVersion(); @Test @@ -32,31 +27,10 @@ public class CharStreamImplTest { CharStream stream = simpleCharStream(""); - expect.expect(EOFException.class); + assertThrows(EOFException.class, stream::readChar); - try { - stream.readChar(); - } catch (Exception e) { - assertEquals(stream.getStartOffset(), 0); - assertEquals(stream.getEndOffset(), 0); - throw e; - } - } - - @Test - public void testReadEofChars() throws IOException { - - CharStream stream = simpleCharStream(""); - - expect.expect(EOFException.class); - - try { - stream.readChar(); - } catch (Exception e) { - assertEquals(0, stream.getStartOffset()); - assertEquals(0, stream.getEndOffset()); - throw e; - } + assertEquals(stream.getStartOffset(), 0); + assertEquals(stream.getEndOffset(), 0); } @Test @@ -65,12 +39,7 @@ public class CharStreamImplTest { CharStream stream = simpleCharStream(""); for (int i = 0; i < 3; i++) { - try { - stream.readChar(); - fail(); - } catch (EOFException ignored) { - - } + assertThrows(EOFException.class, stream::readChar); } } @@ -85,8 +54,7 @@ public class CharStreamImplTest { assertEquals('c', stream.readChar()); assertEquals('d', stream.readChar()); - expect.expect(EOFException.class); - stream.readChar(); + assertThrows(EOFException.class, stream::readChar); } @Test @@ -106,8 +74,7 @@ public class CharStreamImplTest { assertEquals('d', stream.readChar()); - expect.expect(EOFException.class); - stream.readChar(); + assertThrows(EOFException.class, stream::readChar); } @Test @@ -135,10 +102,38 @@ public class CharStreamImplTest { assertEquals("\u00a0_", stream.getTokenImage()); - expect.expect(EOFException.class); - stream.readChar(); + assertThrows(EOFException.class, stream::readChar); } + @Test + public void testBacktrackTooMuch() throws IOException { + + CharStream stream = simpleCharStream("abcd"); + + assertEquals('a', stream.readChar()); + assertEquals('b', stream.readChar()); + assertEquals('c', stream.markTokenStart()); + assertEquals('d', stream.readChar()); + + stream.backup(2); // ok + + assertThrows(IllegalArgumentException.class, () -> stream.backup(1)); + } + + @Test + public void testBacktrackTooMuch2() throws IOException { + + CharStream stream = simpleCharStream("abcd"); + + assertEquals('a', stream.markTokenStart()); + assertEquals('b', stream.readChar()); + assertEquals('c', stream.readChar()); + assertEquals('d', stream.readChar()); + + assertThrows(IllegalArgumentException.class, () -> stream.backup(10)); + } + + public CharStream simpleCharStream(String abcd) { return CharStream.create(TextDocument.readOnlyString(abcd, dummyVersion), TokenDocumentBehavior.DEFAULT); } @@ -154,34 +149,4 @@ public class CharStreamImplTest { }); } - @Test - public void testBacktrackTooMuch() throws IOException { - - CharStream stream = simpleCharStream("abcd"); - - assertEquals('a', stream.readChar()); - assertEquals('b', stream.readChar()); - assertEquals('c', stream.markTokenStart()); - assertEquals('d', stream.readChar()); - - stream.backup(2); // ok - expect.expect(IllegalArgumentException.class); - stream.backup(1); - } - - @Test - public void testBacktrackTooMuch2() throws IOException { - - CharStream stream = simpleCharStream("abcd"); - - assertEquals('a', stream.markTokenStart()); - assertEquals('b', stream.readChar()); - assertEquals('c', stream.readChar()); - assertEquals('d', stream.readChar()); - - expect.expect(IllegalArgumentException.class); - stream.backup(10); - } - - } diff --git a/pmd-core/src/test/java/net/sourceforge/pmd/lang/ast/impl/javacc/io/JavaEscapeReaderTest.java b/pmd-core/src/test/java/net/sourceforge/pmd/lang/ast/impl/javacc/JavaEscapeReaderTest.java similarity index 76% rename from pmd-core/src/test/java/net/sourceforge/pmd/lang/ast/impl/javacc/io/JavaEscapeReaderTest.java rename to pmd-core/src/test/java/net/sourceforge/pmd/lang/ast/impl/javacc/JavaEscapeReaderTest.java index a59a7844e6..1d43033bd2 100644 --- a/pmd-core/src/test/java/net/sourceforge/pmd/lang/ast/impl/javacc/io/JavaEscapeReaderTest.java +++ b/pmd-core/src/test/java/net/sourceforge/pmd/lang/ast/impl/javacc/JavaEscapeReaderTest.java @@ -2,11 +2,12 @@ * BSD-style license; for more info see http://pmd.sourceforge.net/license.html */ -package net.sourceforge.pmd.lang.ast.impl.javacc.io; +package net.sourceforge.pmd.lang.ast.impl.javacc; + +import static org.junit.Assert.assertEquals; import java.io.IOException; -import org.junit.Assert; import org.junit.Test; import net.sourceforge.pmd.lang.LanguageRegistry; @@ -27,7 +28,7 @@ public class JavaEscapeReaderTest { String input = "abcdede"; try (TextDocument r = readString(input)) { - Assert.assertEquals(Chars.wrap(input), r.getText()); + assertEquals(Chars.wrap(input), r.getText()); } } @@ -36,7 +37,7 @@ public class JavaEscapeReaderTest { String input = "abc\\dede"; try (TextDocument r = readString(input)) { - Assert.assertEquals(Chars.wrap(input), r.getText()); + assertEquals(Chars.wrap(input), r.getText()); } } @@ -45,7 +46,7 @@ public class JavaEscapeReaderTest { String input = "abc\\\\\\dede"; try (TextDocument r = readString(input)) { - Assert.assertEquals(Chars.wrap(input), r.getText()); + assertEquals(Chars.wrap(input), r.getText()); } } @@ -54,7 +55,7 @@ public class JavaEscapeReaderTest { String input = "abc\\\\\\u00a0dede"; try (TextDocument r = readString(input)) { - Assert.assertEquals(Chars.wrap("abc\u00a0dede"), r.getText()); + assertEquals(Chars.wrap("abc\u00a0dede"), r.getText()); } } @@ -63,7 +64,7 @@ public class JavaEscapeReaderTest { String input = "abc\\\\\\u00a0d\\uu00a0ede"; try (TextDocument r = readString(input)) { - Assert.assertEquals(Chars.wrap("abc\u00a0d\u00a0ede"), r.getText()); + assertEquals(Chars.wrap("abc\u00a0d\u00a0ede"), r.getText()); } } @@ -72,7 +73,7 @@ public class JavaEscapeReaderTest { String input = "abc\\\\\\u00a0dede\\u00a0"; try (TextDocument r = readString(input)) { - Assert.assertEquals(Chars.wrap("abc\u00a0dede\u00a0"), r.getText()); + assertEquals(Chars.wrap("abc\u00a0dede\u00a0"), r.getText()); } } } diff --git a/pmd-cpp/src/main/java/net/sourceforge/pmd/cpd/CPPTokenizer.java b/pmd-cpp/src/main/java/net/sourceforge/pmd/cpd/CPPTokenizer.java index 05926029a1..011871adde 100644 --- a/pmd-cpp/src/main/java/net/sourceforge/pmd/cpd/CPPTokenizer.java +++ b/pmd-cpp/src/main/java/net/sourceforge/pmd/cpd/CPPTokenizer.java @@ -15,7 +15,7 @@ import net.sourceforge.pmd.lang.TokenManager; import net.sourceforge.pmd.lang.ast.impl.javacc.CharStream; import net.sourceforge.pmd.lang.ast.impl.javacc.JavaccToken; import net.sourceforge.pmd.lang.ast.impl.javacc.JavaccTokenDocument.TokenDocumentBehavior; -import net.sourceforge.pmd.lang.ast.impl.javacc.io.MalformedSourceException; +import net.sourceforge.pmd.lang.ast.impl.javacc.MalformedSourceException; import net.sourceforge.pmd.lang.cpp.ast.CppTokenKinds; import net.sourceforge.pmd.lang.document.TextDocument; diff --git a/pmd-cpp/src/main/java/net/sourceforge/pmd/cpd/CppBlockSkipper.java b/pmd-cpp/src/main/java/net/sourceforge/pmd/cpd/CppBlockSkipper.java index b8810034af..35857ef375 100644 --- a/pmd-cpp/src/main/java/net/sourceforge/pmd/cpd/CppBlockSkipper.java +++ b/pmd-cpp/src/main/java/net/sourceforge/pmd/cpd/CppBlockSkipper.java @@ -7,8 +7,8 @@ package net.sourceforge.pmd.cpd; import java.util.regex.Matcher; import java.util.regex.Pattern; -import net.sourceforge.pmd.lang.ast.impl.javacc.io.EscapeTranslator; -import net.sourceforge.pmd.lang.ast.impl.javacc.io.MalformedSourceException; +import net.sourceforge.pmd.lang.ast.impl.javacc.EscapeTranslator; +import net.sourceforge.pmd.lang.ast.impl.javacc.MalformedSourceException; import net.sourceforge.pmd.lang.document.Chars; import net.sourceforge.pmd.lang.document.TextDocument; diff --git a/pmd-cpp/src/main/java/net/sourceforge/pmd/cpd/CppEscapeTranslator.java b/pmd-cpp/src/main/java/net/sourceforge/pmd/cpd/CppEscapeTranslator.java index 32fbeddd1e..b89904ffaf 100644 --- a/pmd-cpp/src/main/java/net/sourceforge/pmd/cpd/CppEscapeTranslator.java +++ b/pmd-cpp/src/main/java/net/sourceforge/pmd/cpd/CppEscapeTranslator.java @@ -4,7 +4,7 @@ package net.sourceforge.pmd.cpd; -import net.sourceforge.pmd.lang.ast.impl.javacc.io.BackslashEscapeTranslator; +import net.sourceforge.pmd.lang.ast.impl.javacc.BackslashEscapeTranslator; import net.sourceforge.pmd.lang.document.Chars; import net.sourceforge.pmd.lang.document.TextDocument; diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/JavaTokenDocumentBehavior.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/JavaTokenDocumentBehavior.java index b157209464..c551808760 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/JavaTokenDocumentBehavior.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/JavaTokenDocumentBehavior.java @@ -17,8 +17,8 @@ import org.checkerframework.checker.nullness.qual.Nullable; import net.sourceforge.pmd.lang.ast.impl.javacc.CharStream; import net.sourceforge.pmd.lang.ast.impl.javacc.JavaccToken; import net.sourceforge.pmd.lang.ast.impl.javacc.JavaccTokenDocument; -import net.sourceforge.pmd.lang.ast.impl.javacc.io.JavaEscapeTranslator; -import net.sourceforge.pmd.lang.ast.impl.javacc.io.MalformedSourceException; +import net.sourceforge.pmd.lang.ast.impl.javacc.JavaEscapeTranslator; +import net.sourceforge.pmd.lang.ast.impl.javacc.MalformedSourceException; import net.sourceforge.pmd.lang.document.TextDocument; /** diff --git a/pmd-java/src/test/java/net/sourceforge/pmd/lang/java/ast/ParserCornersTest.java b/pmd-java/src/test/java/net/sourceforge/pmd/lang/java/ast/ParserCornersTest.java index 9d1d1818d7..d974ab3262 100644 --- a/pmd-java/src/test/java/net/sourceforge/pmd/lang/java/ast/ParserCornersTest.java +++ b/pmd-java/src/test/java/net/sourceforge/pmd/lang/java/ast/ParserCornersTest.java @@ -15,7 +15,7 @@ import org.junit.Test; import org.junit.rules.ExpectedException; import net.sourceforge.pmd.lang.ast.ParseException; -import net.sourceforge.pmd.lang.ast.impl.javacc.io.MalformedSourceException; +import net.sourceforge.pmd.lang.ast.impl.javacc.MalformedSourceException; import net.sourceforge.pmd.lang.ast.test.BaseParsingHelper; import net.sourceforge.pmd.lang.java.BaseJavaTreeDumpTest; import net.sourceforge.pmd.lang.java.JavaParsingHelper; diff --git a/pmd-visualforce/src/main/java/net/sourceforge/pmd/cpd/VfTokenizer.java b/pmd-visualforce/src/main/java/net/sourceforge/pmd/cpd/VfTokenizer.java index a347c58d8f..198284c243 100644 --- a/pmd-visualforce/src/main/java/net/sourceforge/pmd/cpd/VfTokenizer.java +++ b/pmd-visualforce/src/main/java/net/sourceforge/pmd/cpd/VfTokenizer.java @@ -10,8 +10,8 @@ import net.sourceforge.pmd.lang.ast.impl.javacc.CharStream; import net.sourceforge.pmd.lang.ast.impl.javacc.JavaccToken; import net.sourceforge.pmd.lang.ast.impl.javacc.JavaccTokenDocument; import net.sourceforge.pmd.lang.ast.impl.javacc.JavaccTokenDocument.TokenDocumentBehavior; -import net.sourceforge.pmd.lang.ast.impl.javacc.io.JavaEscapeTranslator; -import net.sourceforge.pmd.lang.ast.impl.javacc.io.MalformedSourceException; +import net.sourceforge.pmd.lang.ast.impl.javacc.JavaEscapeTranslator; +import net.sourceforge.pmd.lang.ast.impl.javacc.MalformedSourceException; import net.sourceforge.pmd.lang.document.TextDocument; import net.sourceforge.pmd.lang.vf.ast.VfTokenKinds;