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 07f64d7fc9 Enable time literal (#5800)
07f64d7fc9 is described below

commit 07f64d7fc916180e05c90ca8caaa61f66523f883
Author: Jiří Locker <[email protected]>
AuthorDate: Sat Mar 23 15:25:45 2024 +0100

    Enable time literal (#5800)
---
 .../drl/parser/antlr4/MiscDRLParserTest.java       | 23 ++++++++++++++++++++++
 .../org/drools/drl/parser/antlr4/DRLParser.g4      |  1 +
 2 files changed, 24 insertions(+)

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 59dadb6598..b7dd646269 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
@@ -3749,9 +3749,12 @@ class MiscDRLParserTest {
                 "then\n" +
                 "end\n";
         PackageDescr packageDescr = parser.parse(text);
+        
assertThat(parser.hasErrors()).as(parser.getErrors().toString()).isFalse();
+
         RuleDescr ruleDescr = packageDescr.getRules().get(0);
         PatternDescr patternDescr = (PatternDescr) 
ruleDescr.getLhs().getDescrs().get(0);
         AnnotationDescr annotationDescr = 
patternDescr.getAnnotations().iterator().next();
+
         assertThat(annotationDescr.getName()).isEqualTo("watch");
         assertThat(annotationDescr.getSingleValueAsString()).isEqualTo("!*, 
age");
     }
@@ -3770,4 +3773,24 @@ class MiscDRLParserTest {
         FromDescr fromDescr = (FromDescr) patternDescr.getSource();
         assertThat(fromDescr.getDataSource().toString()).isEqualTo("new 
Person(\"John\", 30)");
     }
+
+    @Test
+    public void expiresWithTimeLiteralValue() {
+        String text = "package org.drools\n" +
+                "declare StockFact\n" +
+                "    @role( value = event )\n" +
+                "    @expires( value = 2s, policy = TIME_SOFT )\n" +
+                "end";
+
+        PackageDescr packageDescr = parser.parse(text);
+        
assertThat(parser.hasErrors()).as(parser.getErrors().toString()).isFalse();
+
+        AnnotationDescr annotationDescr = packageDescr
+                .getTypeDeclarations().get(0)
+                .getAnnotation("expires");
+
+        assertThat(annotationDescr.getSingleValueAsString()).isEqualTo("2s");
+        assertThat(annotationDescr.getValueAsString("value")).isEqualTo("2s");
+        
assertThat(annotationDescr.getValueAsString("policy")).isEqualTo("TIME_SOFT");
+    }
 }
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 a218c069b1..fab8ee8fac 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
@@ -321,6 +321,7 @@ drlLiteral
     | BOOL_LITERAL
     | NULL_LITERAL
     | TEXT_BLOCK // Java17
+    | TIME_INTERVAL
     ;
 
 inlineListExpression


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

Reply via email to