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]