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 09334edd0f51f650f4ae6d9680f707b348d3af47
Author: Toshiya Kobayashi <[email protected]>
AuthorDate: Tue Dec 5 16:48:44 2023 +0900

    [DROOLS-7591] Experiment branch : migrate a new drools-lsp parser into 
drools (#44)
    
    - Add some methods to call from drools code base
---
 .../java/org/drools/parser/DRLParserHelper.java     | 21 +++++++++++++++++++--
 .../java/org/drools/parser/DRLParserWrapper.java    | 13 +++++++++++++
 2 files changed, 32 insertions(+), 2 deletions(-)

diff --git 
a/drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/DRLParserHelper.java
 
b/drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/DRLParserHelper.java
index bee7a6e96d..bd95c3033c 100644
--- 
a/drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/DRLParserHelper.java
+++ 
b/drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/DRLParserHelper.java
@@ -1,5 +1,9 @@
 package org.drools.parser;
 
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.UncheckedIOException;
+
 import org.antlr.v4.runtime.CharStream;
 import org.antlr.v4.runtime.CharStreams;
 import org.antlr.v4.runtime.CommonTokenStream;
@@ -28,8 +32,21 @@ public class DRLParserHelper {
     }
 
     public static DRLParser createDrlParser(String drl) {
-        CharStream inputStream = CharStreams.fromString(drl);
-        DRLLexer drlLexer = new DRLLexer(inputStream);
+        CharStream charStream = CharStreams.fromString(drl);
+        return createDrlParser(charStream);
+    }
+
+    public static DRLParser createDrlParser(InputStream is) {
+        try {
+            CharStream charStream = CharStreams.fromStream(is);
+            return createDrlParser(charStream);
+        } catch (IOException e) {
+            throw new UncheckedIOException(e);
+        }
+    }
+
+    private static DRLParser createDrlParser(CharStream charStream) {
+        DRLLexer drlLexer = new DRLLexer(charStream);
         CommonTokenStream commonTokenStream = new CommonTokenStream(drlLexer);
         return new DRLParser(commonTokenStream);
     }
diff --git 
a/drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/DRLParserWrapper.java
 
b/drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/DRLParserWrapper.java
index 8f24bf1d3f..88ae36c12f 100644
--- 
a/drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/DRLParserWrapper.java
+++ 
b/drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/DRLParserWrapper.java
@@ -1,5 +1,6 @@
 package org.drools.parser;
 
+import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -24,6 +25,18 @@ public class DRLParserWrapper {
      */
     public PackageDescr parse(String drl) {
         DRLParser drlParser = DRLParserHelper.createDrlParser(drl);
+        return parse(drlParser);
+    }
+
+    /**
+     * Main entry point for parsing DRL
+     */
+    public PackageDescr parse(InputStream is) {
+        DRLParser drlParser = DRLParserHelper.createDrlParser(is);
+        return parse(drlParser);
+    }
+
+    private PackageDescr parse(DRLParser drlParser) {
         DRLErrorListener errorListener = new DRLErrorListener();
         drlParser.addErrorListener(errorListener);
 


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

Reply via email to