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 d03d1d87b1 [incubator-kie-drools-5982] [new-parser] Enable alternative
attributes test (#5983)
d03d1d87b1 is described below
commit d03d1d87b172cd808dfcb8a42cde0986f7c27927
Author: Toshiya Kobayashi <[email protected]>
AuthorDate: Fri Jun 7 15:23:37 2024 +0900
[incubator-kie-drools-5982] [new-parser] Enable alternative attributes test
(#5983)
---
.../org/drools/drl/parser/antlr4/MiscDRLParserTest.java | 15 +++++++--------
.../org/drools/drl/parser/antlr4/DRL6Expressions.g4 | 1 +
.../main/antlr4/org/drools/drl/parser/antlr4/DRLLexer.g4 | 1 +
.../main/antlr4/org/drools/drl/parser/antlr4/DRLParser.g4 | 15 ++++++++-------
4 files changed, 17 insertions(+), 15 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 92df973dda..4769ce9f3b 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
@@ -1964,9 +1964,8 @@ class MiscDRLParserTest {
assertThat(at.getValue()).isEqualTo("true");
}
- @Disabled("Priority : Low | Not written in docs nor other unit tests. Drop
the support?")
@Test
- public void parse_Attributes_alternateSyntax() throws Exception {
+ public void parse_Attributes_alternateSyntax() {
final RuleDescr rule = parseAndGetFirstRuleDescrFromFile(
"rule_attributes_alt.drl" );
assertThat(rule.getName()).isEqualTo("simple_rule");
@@ -1975,27 +1974,27 @@ class MiscDRLParserTest {
final Map<String, AttributeDescr> attrs = rule.getAttributes();
assertThat(attrs.size()).isEqualTo(6);
- AttributeDescr at = (AttributeDescr) attrs.get( "salience" );
+ AttributeDescr at = attrs.get( "salience" );
assertThat(at.getName()).isEqualTo("salience");
assertThat(at.getValue()).isEqualTo("42");
- at = (AttributeDescr) attrs.get( "agenda-group" );
+ at = attrs.get( "agenda-group" );
assertThat(at.getName()).isEqualTo("agenda-group");
assertThat(at.getValue()).isEqualTo("my_group");
- at = (AttributeDescr) attrs.get( "no-loop" );
+ at = attrs.get( "no-loop" );
assertThat(at.getName()).isEqualTo("no-loop");
assertThat(at.getValue()).isEqualTo("true");
- at = (AttributeDescr) attrs.get( "lock-on-active" );
+ at = attrs.get( "lock-on-active" );
assertThat(at.getName()).isEqualTo("lock-on-active");
assertThat(at.getValue()).isEqualTo("true");
- at = (AttributeDescr) attrs.get( "duration" );
+ at = attrs.get( "duration" );
assertThat(at.getName()).isEqualTo("duration");
assertThat(at.getValue()).isEqualTo("42");
- at = (AttributeDescr) attrs.get( "activation-group" );
+ at = attrs.get( "activation-group" );
assertThat(at.getName()).isEqualTo("activation-group");
assertThat(at.getValue()).isEqualTo("my_activation_group");
}
diff --git
a/drools-drl/drools-drl-parser/src/main/antlr4/org/drools/drl/parser/antlr4/DRL6Expressions.g4
b/drools-drl/drools-drl-parser/src/main/antlr4/org/drools/drl/parser/antlr4/DRL6Expressions.g4
index 9819713fbb..2efe8b1ec8 100644
---
a/drools-drl/drools-drl-parser/src/main/antlr4/org/drools/drl/parser/antlr4/DRL6Expressions.g4
+++
b/drools-drl/drools-drl-parser/src/main/antlr4/org/drools/drl/parser/antlr4/DRL6Expressions.g4
@@ -264,6 +264,7 @@ drlKeywords returns [Token token]
| DRL_EVAL
| DRL_FORALL
| DRL_OVER
+ | DRL_ATTRIBUTES
| DRL_SALIENCE
| DRL_ENABLED
| DRL_NO_LOOP
diff --git
a/drools-drl/drools-drl-parser/src/main/antlr4/org/drools/drl/parser/antlr4/DRLLexer.g4
b/drools-drl/drools-drl-parser/src/main/antlr4/org/drools/drl/parser/antlr4/DRLLexer.g4
index 198dfccfc2..2a433de8b0 100644
---
a/drools-drl/drools-drl-parser/src/main/antlr4/org/drools/drl/parser/antlr4/DRLLexer.g4
+++
b/drools-drl/drools-drl-parser/src/main/antlr4/org/drools/drl/parser/antlr4/DRLLexer.g4
@@ -89,6 +89,7 @@ DRL_STARTED_BY : 'startedby';
DRL_WINDOW : 'window';
// attributes
+DRL_ATTRIBUTES : 'attributes';
DRL_SALIENCE : 'salience';
DRL_ENABLED : 'enabled';
DRL_NO_LOOP : 'no-loop';
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 40b3bc6659..c1e399fd01 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
@@ -440,13 +440,14 @@ drlAnnotation
: {boolean buildState = buildDescr; buildDescr = true;}
anno=fullAnnotation[null] {buildDescr = buildState;} // either standard Java
annotation
| AT name=drlQualifiedName (LPAREN chunk RPAREN)? ; // or support
@watch(!*, age) etc.
-attributes : attribute ( COMMA? attribute )* ;
-attribute : name=( 'salience' | 'enabled' ) conditionalAttributeValue
#expressionAttribute
- | name=( 'no-loop' | 'auto-focus' | 'lock-on-active' | 'refract' |
'direct' ) BOOL_LITERAL? #booleanAttribute
- | name=( 'agenda-group' | 'activation-group' | 'ruleflow-group' |
'date-effective' | 'date-expires' | 'dialect' ) DRL_STRING_LITERAL
#stringAttribute
- | name='calendars' DRL_STRING_LITERAL ( COMMA DRL_STRING_LITERAL )*
#stringListAttribute
- | name='timer' ( DECIMAL_LITERAL | LPAREN chunk RPAREN )
#intOrChunkAttribute
- | name='duration' ( DECIMAL_LITERAL | LPAREN chunk RPAREN )
#intOrChunkAttribute
+// attributes := (ATTRIBUTES COLON?)? [ attribute ( COMMA? attribute )* ]
+attributes : (DRL_ATTRIBUTES COLON?)? attribute ( COMMA? attribute )* ;
+attribute : name=( DRL_SALIENCE | DRL_ENABLED ) conditionalAttributeValue
#expressionAttribute
+ | name=( DRL_NO_LOOP | DRL_AUTO_FOCUS | DRL_LOCK_ON_ACTIVE |
DRL_REFRACT | DRL_DIRECT ) BOOL_LITERAL? #booleanAttribute
+ | name=( DRL_AGENDA_GROUP | DRL_ACTIVATION_GROUP |
DRL_RULEFLOW_GROUP | DRL_DATE_EFFECTIVE | DRL_DATE_EXPIRES | DRL_DIALECT )
DRL_STRING_LITERAL #stringAttribute
+ | name=DRL_CALENDARS DRL_STRING_LITERAL ( COMMA DRL_STRING_LITERAL
)* #stringListAttribute
+ | name=DRL_TIMER ( DECIMAL_LITERAL | LPAREN chunk RPAREN )
#intOrChunkAttribute
+ | name=DRL_DURATION ( DECIMAL_LITERAL | LPAREN chunk RPAREN )
#intOrChunkAttribute
;
conditionalAttributeValue : ( LPAREN conditionalExpression RPAREN |
conditionalExpression ) ;
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]