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 ba41ed36fb2d70f4a39c8e21f64b64cc159aa3a0
Author: Toshiya Kobayashi <[email protected]>
AuthorDate: Fri Sep 22 15:45:58 2023 +0900

    [DROOLS-7290] Implement BigInteger literal, BigDecimal literal (#31)
---
 .../src/main/antlr4/org/drools/parser/DRLLexer.g4                | 9 +++++++++
 .../src/main/antlr4/org/drools/parser/DRLParser.g4               | 2 ++
 .../src/test/java/org/drools/parser/MiscDRLParserTest.java       | 7 +++----
 3 files changed, 14 insertions(+), 4 deletions(-)

diff --git 
a/drools-drl/drools-drl10-parser/src/main/antlr4/org/drools/parser/DRLLexer.g4 
b/drools-drl/drools-drl10-parser/src/main/antlr4/org/drools/parser/DRLLexer.g4
index 8264c7b87e..56d0ada08c 100644
--- 
a/drools-drl/drools-drl10-parser/src/main/antlr4/org/drools/parser/DRLLexer.g4
+++ 
b/drools-drl/drools-drl10-parser/src/main/antlr4/org/drools/parser/DRLLexer.g4
@@ -85,6 +85,15 @@ DRL_STRING_LITERAL
     |  ('\'' ( DrlEscapeSequence | ~('\\'|'\'') )* '\'') { setText( 
normalizeString( getText() ) ); }
     ;
 
+DRL_BIG_DECIMAL_LITERAL
+    :  ('0'..'9')+ [B]
+    |  ('0'..'9')+ '.' ('0'..'9')+ [B]
+    ;
+
+DRL_BIG_INTEGER_LITERAL
+    :  ('0'..'9')+ [I]
+    ;
+
 /////////////////
 // SYMBOLS
 /////////////////
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 0daeb201ae..d775f02b27 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
@@ -230,6 +230,8 @@ drlPrimary
 drlLiteral
     : integerLiteral
     | floatLiteral
+    | DRL_BIG_DECIMAL_LITERAL
+    | DRL_BIG_INTEGER_LITERAL
     | CHAR_LITERAL
     | DRL_STRING_LITERAL
     | BOOL_LITERAL
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 7b4074b16e..b678d1ccce 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
@@ -3176,13 +3176,12 @@ class MiscDRLParserTest {
 
     }
 
-    @Disabled("Priority : High | Implement BigInteger literal, BigDecimal 
literal")
     @Test
-    public void parse_BigLiterals() throws Exception {
+    public void parse_BigLiterals() {
         final String text = "rule X when Primitives( bigInteger == (10I), " +
                 "                        bigDecimal == (10B), " +
                 "                        bigInteger < 50I, " +
-                "                        bigDecimal < 50B ) then end";
+                "                        bigDecimal < 50.2B ) then end";
         PatternDescr pattern = (PatternDescr) parseAndGetFirstRuleDescr(
                                                                   text 
).getLhs().getDescrs().get( 0 );
 
@@ -3197,7 +3196,7 @@ class MiscDRLParserTest {
         assertThat(ecd.getExpression()).isEqualTo("bigInteger < 50I");
 
         ecd = (ExprConstraintDescr) pattern.getDescrs().get( 3 );
-        assertThat(ecd.getExpression()).isEqualTo("bigDecimal < 50B");
+        assertThat(ecd.getExpression()).isEqualTo("bigDecimal < 50.2B");
     }
 
     @Test


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

Reply via email to