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]
