This is an automated email from the ASF dual-hosted git repository.
tkobayas 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 6300a63b62 Fix window reference (#5802)
6300a63b62 is described below
commit 6300a63b627ac838b2342741d6906104b303d416
Author: Jiří Locker <[email protected]>
AuthorDate: Mon Mar 25 12:12:24 2024 +0100
Fix window reference (#5802)
---
.../test/java/org/drools/drl/parser/antlr4/MiscDRLParserTest.java | 1 -
.../src/main/antlr4/org/drools/drl/parser/antlr4/DRLParser.g4 | 6 +++++-
.../src/main/java/org/drools/drl/parser/antlr4/DRLVisitorImpl.java | 6 ++++++
3 files changed, 11 insertions(+), 2 deletions(-)
diff --git
a/drools-drl/drools-drl-parser-tests/src/test/java/org/drools/drl/parser/antlr4/MiscDRLParserTest.java
b/drools-drl/drools-drl-parser-tests/src/test/java/org/drools/drl/parser/antlr4/MiscDRLParserTest.java
index 1ae6522da0..f4418f1bef 100644
---
a/drools-drl/drools-drl-parser-tests/src/test/java/org/drools/drl/parser/antlr4/MiscDRLParserTest.java
+++
b/drools-drl/drools-drl-parser-tests/src/test/java/org/drools/drl/parser/antlr4/MiscDRLParserTest.java
@@ -3391,7 +3391,6 @@ class MiscDRLParserTest {
assertThat(bd.getParameters().get(1)).isEqualTo("$s.symbol");
}
- @Disabled("Priority : Mid | Implement using declared window. Not written
in docs, but unit tests found.")
@Test
public void parse_WindowUsage() throws Exception {
final String text = "package org.drools\n" +
diff --git
a/drools-drl/drools-drl-parser/src/main/antlr4/org/drools/drl/parser/antlr4/DRLParser.g4
b/drools-drl/drools-drl-parser/src/main/antlr4/org/drools/drl/parser/antlr4/DRLParser.g4
index c7596d0144..34ebacd4da 100644
---
a/drools-drl/drools-drl-parser/src/main/antlr4/org/drools/drl/parser/antlr4/DRLParser.g4
+++
b/drools-drl/drools-drl-parser/src/main/antlr4/org/drools/drl/parser/antlr4/DRLParser.g4
@@ -67,7 +67,7 @@ entryPointDeclaration : DRL_ENTRY_POINT name=stringId
drlAnnotation* ;
// windowDeclaration := WINDOW ID annotation* lhsPatternBind END
-windowDeclaration : DRL_WINDOW name=stringId drlAnnotation* lhsPatternBind ;
+windowDeclaration : DRL_WINDOW name=IDENTIFIER drlAnnotation* lhsPatternBind ;
// field := label fieldType (EQUALS_ASSIGN conditionalExpression)? annotation*
SEMICOLON?
@@ -361,6 +361,7 @@ patternFilter : DRL_WINDOW COLON IDENTIFIER LPAREN
expressionList RPAREN ;
patternSource : fromAccumulate
| fromCollect
| fromEntryPoint
+ | fromWindow
| fromExpression
;
@@ -394,6 +395,9 @@ fromCollect : DRL_COLLECT LPAREN lhsPatternBind RPAREN ;
fromEntryPoint : DRL_ENTRY_POINT stringId ;
+// fromWindow := WINDOW ID
+fromWindow : DRL_WINDOW IDENTIFIER ;
+
/*
lhsExists := EXISTS
( (LEFT_PAREN (or_key|and_key))=> lhsOr // prevents '((' for
prefixed and/or
diff --git
a/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/antlr4/DRLVisitorImpl.java
b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/antlr4/DRLVisitorImpl.java
index 0de2de1239..9ab53768f7 100644
---
a/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/antlr4/DRLVisitorImpl.java
+++
b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/antlr4/DRLVisitorImpl.java
@@ -58,6 +58,7 @@ import org.drools.drl.ast.descr.TypeDeclarationDescr;
import org.drools.drl.ast.descr.TypeFieldDescr;
import org.drools.drl.ast.descr.UnitDescr;
import org.drools.drl.ast.descr.WindowDeclarationDescr;
+import org.drools.drl.ast.descr.WindowReferenceDescr;
import static
org.drools.drl.parser.antlr4.Antlr4ParserStringUtils.getTextPreservingWhitespace;
import static
org.drools.drl.parser.antlr4.Antlr4ParserStringUtils.getTokenTextPreservingWhitespace;
@@ -591,6 +592,11 @@ public class DRLVisitorImpl extends
DRLParserBaseVisitor<Object> {
return new
EntryPointDescr(safeStripStringDelimiters(ctx.stringId().getText()));
}
+ @Override
+ public WindowReferenceDescr visitFromWindow(DRLParser.FromWindowContext
ctx) {
+ return new WindowReferenceDescr(ctx.IDENTIFIER().getText());
+ }
+
/**
* Collect constraints in a Pattern
*/
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]