From a5b12a4e83f99552bc113101e640220999cd921c Mon Sep 17 00:00:00 2001 From: Maikel Steneker Date: Fri, 15 Jun 2018 11:22:59 +0200 Subject: [PATCH 1/3] Added test case for Python backticks. --- .../net/sourceforge/pmd/cpd/PythonTokenizerTest.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/pmd-python/src/test/java/net/sourceforge/pmd/cpd/PythonTokenizerTest.java b/pmd-python/src/test/java/net/sourceforge/pmd/cpd/PythonTokenizerTest.java index 58d771f7eb..6896a14d62 100644 --- a/pmd-python/src/test/java/net/sourceforge/pmd/cpd/PythonTokenizerTest.java +++ b/pmd-python/src/test/java/net/sourceforge/pmd/cpd/PythonTokenizerTest.java @@ -53,4 +53,16 @@ public class PythonTokenizerTest extends AbstractTokenizerTest { TokenEntry.getEOF(); assertEquals(3, tokens.size()); // 3 tokens: "import" + "logging" + EOF } + + @Test + public void testBackticks() throws IOException { + SourceCode sourceCode = new SourceCode(new SourceCode.StringCodeLoader("test = 'hello'" + PMD.EOL + + "quoted = `test`" + PMD.EOL + + "print quoted" + PMD.EOL + )); + Tokens tokens = new Tokens(); + tokenizer.tokenize(sourceCode, tokens); // should not result in parse error + TokenEntry.getEOF(); + assertEquals(3, tokens.getTokens().get(tokens.getTokens().size() - 2).getBeginLine()); + } } From cad32d9b830b7b437cd299e87fbdd01658407326 Mon Sep 17 00:00:00 2001 From: Bram Stappers Date: Wed, 28 Jun 2017 15:28:25 +0200 Subject: [PATCH 2/3] 18984: [PMD] Added support for Python 2 backticks (`). --- pmd-python/etc/grammar/python.jj | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pmd-python/etc/grammar/python.jj b/pmd-python/etc/grammar/python.jj index 60f723870c..1f97f9d948 100644 --- a/pmd-python/etc/grammar/python.jj +++ b/pmd-python/etc/grammar/python.jj @@ -52,6 +52,7 @@ TOKEN : /* SEPARATORS */ | < COMMA: "," > | < DOT: "." > | < COLON: ":" > +| < BACKTICK: "`" > } @@ -280,4 +281,4 @@ MORE : /* Strings */ | <"\r"> { image.setCharAt(image.length()-1, '\n'); } | <~["\n","\r"]> | <"\\" ~["\n","\r"]> -} \ No newline at end of file +} From cd6be28f9bdea3e15b48c286b98afd8fa5c7184c Mon Sep 17 00:00:00 2001 From: Andreas Dangel Date: Fri, 3 May 2019 12:27:47 +0200 Subject: [PATCH 3/3] Update release notes, refs #1802, fixes #1810 --- docs/pages/release_notes.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/pages/release_notes.md b/docs/pages/release_notes.md index edf8ae5b63..2ca9bdc86e 100644 --- a/docs/pages/release_notes.md +++ b/docs/pages/release_notes.md @@ -45,6 +45,8 @@ Being based on a proper Antlr grammar, CPD can: * [#1782](https://github.com/pmd/pmd/issues/1782): \[java] NoPackage: False Negative for enums * java-design * [#1760](https://github.com/pmd/pmd/issues/1760): \[java] UseObjectForClearerAPI flags private methods +* python + * [#1810](https://github.com/pmd/pmd/issues/1810): \[python] \[cpd] Parse error when using Python 2 backticks ### API Changes @@ -56,6 +58,7 @@ Being based on a proper Antlr grammar, CPD can: * [#1761](https://github.com/pmd/pmd/pull/1761): \[dart] \[cpd] Added CPD support for Dart - [Maikel Steneker](https://github.com/maikelsteneker) * [#1776](https://github.com/pmd/pmd/pull/1776): \[java] Show more detailed message when can't resolve field type - [Andrey Fomin](https://github.com/andrey-fomin) * [#1781](https://github.com/pmd/pmd/pull/1781): \[java] Location change in AssignmentToNonFinalStatic - [Maikel Steneker](https://github.com/maikelsteneker) +* [#1802](https://github.com/pmd/pmd/pull/1802): \[python] \[cpd] Add support for Python 2 backticks - [Maikel Steneker](https://github.com/maikelsteneker) {% endtocmaker %}