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

commit 71683ae58a56d7e1c4aa5120caf1fd49ca614060
Author: Toshiya Kobayashi <[email protected]>
AuthorDate: Mon Sep 25 15:49:09 2023 +0900

    [DROOLS-7293] Implement extends (#33)
---
 .../src/main/antlr4/org/drools/parser/DRLParser.g4                    | 2 +-
 .../src/main/java/org/drools/parser/DRLVisitorImpl.java               | 4 ++++
 .../src/test/java/org/drools/parser/MiscDRLParserTest.java            | 1 -
 3 files changed, 5 insertions(+), 2 deletions(-)

diff --git 
a/drools-drl/drools-drl10-parser/src/main/antlr4/org/drools/parser/DRLParser.g4 
b/drools-drl/drools-drl10-parser/src/main/antlr4/org/drools/parser/DRLParser.g4
index 760c0bec2b..aaedc2bf7e 100644
--- 
a/drools-drl/drools-drl10-parser/src/main/antlr4/org/drools/parser/DRLParser.g4
+++ 
b/drools-drl/drools-drl10-parser/src/main/antlr4/org/drools/parser/DRLParser.g4
@@ -36,7 +36,7 @@ globaldef : DRL_GLOBAL type drlIdentifier SEMI? ;
 
 // rule := RULE stringId (EXTENDS stringId)? annotation* attributes? lhs? rhs 
END
 
-ruledef : DRL_RULE name=stringId (EXTENDS stringId)? drlAnnotation* 
attributes? lhs rhs DRL_END ;
+ruledef : DRL_RULE name=stringId (EXTENDS parentName=stringId)? drlAnnotation* 
attributes? lhs rhs DRL_END ;
 
 lhs : DRL_WHEN lhsExpression* ;
 
diff --git 
a/drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/DRLVisitorImpl.java
 
b/drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/DRLVisitorImpl.java
index 28c299438a..cd0ca10007 100644
--- 
a/drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/DRLVisitorImpl.java
+++ 
b/drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/DRLVisitorImpl.java
@@ -150,6 +150,10 @@ public class DRLVisitorImpl extends 
DRLParserBaseVisitor<Object> {
     public RuleDescr visitRuledef(DRLParser.RuledefContext ctx) {
         RuleDescr ruleDescr = new 
RuleDescr(safeStripStringDelimiters(ctx.name.getText()));
 
+        if (ctx.EXTENDS() != null) {
+            
ruleDescr.setParentName(safeStripStringDelimiters(ctx.parentName.getText()));
+        }
+
         
ctx.drlAnnotation().stream().map(this::visitDrlAnnotation).forEach(ruleDescr::addAnnotation);
 
         if (ctx.attributes() != null) {
diff --git 
a/drools-drl/drools-drl10-parser/src/test/java/org/drools/parser/MiscDRLParserTest.java
 
b/drools-drl/drools-drl10-parser/src/test/java/org/drools/parser/MiscDRLParserTest.java
index 75f910d3a5..9b3ebc2744 100644
--- 
a/drools-drl/drools-drl10-parser/src/test/java/org/drools/parser/MiscDRLParserTest.java
+++ 
b/drools-drl/drools-drl10-parser/src/test/java/org/drools/parser/MiscDRLParserTest.java
@@ -2783,7 +2783,6 @@ class MiscDRLParserTest {
                                       );
     }
 
-    @Disabled("Priority : High | Implement extends")
     @Test
     public void parse_RuleExtends() throws Exception {
         final PackageDescr pkg = parseAndGetPackageDescrFromFile(


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

Reply via email to