This is an automated email from the ASF dual-hosted git repository.

mariofusco pushed a commit to branch dev-new-parser
in repository https://gitbox.apache.org/repos/asf/incubator-kie-drools.git


The following commit(s) were added to refs/heads/dev-new-parser by this push:
     new 5cc237101f Fix super_key failed predicate (#5748)
5cc237101f is described below

commit 5cc237101f4f1c05654d01c956fd4fefa945d19d
Author: Jiří Locker <[email protected]>
AuthorDate: Thu Feb 29 09:40:23 2024 +0100

    Fix super_key failed predicate (#5748)
---
 .../drl/parser/antlr4/DRLExprParserTest.java       | 38 ++++++++++++++++++++++
 .../drools/drl/parser/antlr4/DRL6Expressions.g4    |  2 +-
 2 files changed, 39 insertions(+), 1 deletion(-)

diff --git 
a/drools-drl/drools-drl-parser-tests/src/test/java/org/drools/drl/parser/antlr4/DRLExprParserTest.java
 
b/drools-drl/drools-drl-parser-tests/src/test/java/org/drools/drl/parser/antlr4/DRLExprParserTest.java
index b573cd1ae5..6343529110 100644
--- 
a/drools-drl/drools-drl-parser-tests/src/test/java/org/drools/drl/parser/antlr4/DRLExprParserTest.java
+++ 
b/drools-drl/drools-drl-parser-tests/src/test/java/org/drools/drl/parser/antlr4/DRLExprParserTest.java
@@ -268,4 +268,42 @@ public class DRLExprParserTest {
         assertThat(left.getExpression()).isEqualTo("a");
         assertThat(right.getExpression()).isEqualTo("b");
     }
+
+    @Test
+    public void selector_dot_super() {
+        String source = "SomeClass.super.getData() != null";
+        ConstraintConnectiveDescr result = parser.parse( source );
+        
assertThat(parser.hasErrors()).as(parser.getErrors().toString()).isFalse();
+
+        assertThat(result.getConnective()).isEqualTo(ConnectiveType.AND);
+        assertThat(result.getDescrs().size()).isEqualTo(1);
+
+        RelationalExprDescr expr = (RelationalExprDescr) 
result.getDescrs().get( 0 );
+        assertThat(expr.getOperator()).isEqualTo("!=");
+
+        AtomicExprDescr left = (AtomicExprDescr) expr.getLeft();
+        AtomicExprDescr right = (AtomicExprDescr) expr.getRight();
+
+        
assertThat(left.getExpression()).isEqualTo("SomeClass.super.getData()");
+        assertThat(right.getExpression()).isEqualTo("null");
+    }
+
+    @Test
+    public void selector_dot_identifier() {
+        String source = "getAddress().getCity().length() == 5";
+        ConstraintConnectiveDescr result = parser.parse( source );
+        
assertThat(parser.hasErrors()).as(parser.getErrors().toString()).isFalse();
+
+        assertThat(result.getConnective()).isEqualTo(ConnectiveType.AND);
+        assertThat(result.getDescrs().size()).isEqualTo(1);
+
+        RelationalExprDescr expr = (RelationalExprDescr) 
result.getDescrs().get( 0 );
+        assertThat(expr.getOperator()).isEqualTo("==");
+
+        AtomicExprDescr left = (AtomicExprDescr) expr.getLeft();
+        AtomicExprDescr right = (AtomicExprDescr) expr.getRight();
+
+        
assertThat(left.getExpression()).isEqualTo("getAddress().getCity().length()");
+        assertThat(right.getExpression()).isEqualTo("5");
+    }
 }
diff --git 
a/drools-drl/drools-drl-parser/src/main/antlr4/org/drools/drl/parser/antlr4/DRL6Expressions.g4
 
b/drools-drl/drools-drl-parser/src/main/antlr4/org/drools/drl/parser/antlr4/DRL6Expressions.g4
index ef6e098267..a981b20867 100644
--- 
a/drools-drl/drools-drl-parser/src/main/antlr4/org/drools/drl/parser/antlr4/DRL6Expressions.g4
+++ 
b/drools-drl/drools-drl-parser/src/main/antlr4/org/drools/drl/parser/antlr4/DRL6Expressions.g4
@@ -774,7 +774,7 @@ extends_key
     ;
 
 super_key
-    :      {(helper.validateIdentifierKey(DroolsSoftKeywords.SUPER))}? 
id=IDENTIFIER { helper.emit($id, DroolsEditorType.KEYWORD); }
+    :      {(helper.validateIdentifierKey(DroolsSoftKeywords.SUPER))}? 
id=SUPER { helper.emit($id, DroolsEditorType.KEYWORD); }
     ;
 
 instanceof_key


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to