From 7d9322734e73e0a9dd247210be0d4bae44099648 Mon Sep 17 00:00:00 2001 From: Piotr Szymanski Date: Fri, 6 Mar 2020 12:29:49 +0100 Subject: [PATCH] fixed parsing front slash --- pmd-plsql/etc/grammar/PldocAST.jjt | 2 +- .../lang/plsql/ast/SlashAsDivisionTest.java | 18 ++++++++++++++++++ .../pmd/lang/plsql/ast/SlashAsDivision.sql | 7 +++++++ 3 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 pmd-plsql/src/test/java/net/sourceforge/pmd/lang/plsql/ast/SlashAsDivisionTest.java create mode 100644 pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/ast/SlashAsDivision.sql diff --git a/pmd-plsql/etc/grammar/PldocAST.jjt b/pmd-plsql/etc/grammar/PldocAST.jjt index f6489df759..8d2fa237bd 100644 --- a/pmd-plsql/etc/grammar/PldocAST.jjt +++ b/pmd-plsql/etc/grammar/PldocAST.jjt @@ -3191,7 +3191,7 @@ ASTMultiplicativeExpression MultiplicativeExpression() #MultiplicativeExpression //UnaryExpression() ( ( "*" | "/" | ) UnaryExpression() )* ( (simpleNode = UnaryExpression(true) ) { sb.append(simpleNode.getImage()); } - ( LOOKAHEAD(2) + ( LOOKAHEAD("**" | "*" | "/" | , {getToken(1).specialToken == null || getToken(1).specialToken.kind != EOL}) ( ("**" ) { sb.append(" ** "); } //Exponentiation | ("*" ) { sb.append(" * "); } | ("/" ) { sb.append(" / "); } diff --git a/pmd-plsql/src/test/java/net/sourceforge/pmd/lang/plsql/ast/SlashAsDivisionTest.java b/pmd-plsql/src/test/java/net/sourceforge/pmd/lang/plsql/ast/SlashAsDivisionTest.java new file mode 100644 index 0000000000..fe182fc25a --- /dev/null +++ b/pmd-plsql/src/test/java/net/sourceforge/pmd/lang/plsql/ast/SlashAsDivisionTest.java @@ -0,0 +1,18 @@ +/** + * BSD-style license; for more info see http://pmd.sourceforge.net/license.html + */ + +package net.sourceforge.pmd.lang.plsql.ast; + +import org.junit.Test; + +import net.sourceforge.pmd.lang.plsql.AbstractPLSQLParserTst; + +public class SlashAsDivisionTest extends AbstractPLSQLParserTst { + + @Test + public void parseSlashAsDivision() { + plsql.parseResource("SlashAsDivision.sql"); + } + +} diff --git a/pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/ast/SlashAsDivision.sql b/pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/ast/SlashAsDivision.sql new file mode 100644 index 0000000000..1600832175 --- /dev/null +++ b/pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/ast/SlashAsDivision.sql @@ -0,0 +1,7 @@ +update name +set street = 'Main Street' +/ + +update name +set n01 = 2/2 +/