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]