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 662834e1a98fa2d2cfa2018c939f9d4870fbb90f
Author: mariofusco <[email protected]>
AuthorDate: Fri Jan 28 17:18:45 2022 +0100

    first c3 integration
---
 .../src/main/java/org/drools/parser/DRLParserHelper.java    | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

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 421624010c..3387a85a9c 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
@@ -17,11 +17,15 @@ public class DRLParserHelper {
     }
 
     public static ParseTree createParseTree(String drl) {
+        return createDrlParser(drl).compilationunit();
+    }
+
+    public static DRLParser createDrlParser(String drl) {
         CharStream inputStream = CharStreams.fromString(drl);
         DRLLexer drlLexer = new DRLLexer(inputStream);
         CommonTokenStream commonTokenStream = new CommonTokenStream(drlLexer);
         DRLParser drlParser = new DRLParser(commonTokenStream);
-        return drlParser.compilationunit();
+        return drlParser;
     }
 
     public static PackageDescr parseTree2PackageDescr(ParseTree parseTree) {
@@ -109,4 +113,11 @@ public class DRLParserHelper {
     public static boolean isAfterSymbol(ParseTree node, int symbol, int row, 
int col) {
         return isSymbol(node, symbol) && endsBefore(node, row, col);
     }
+
+    public static int getNodeIndex(ParseTree node) {
+        if (node instanceof TerminalNode) {
+            return ((TerminalNode) node).getSymbol().getTokenIndex();
+        }
+        return getNodeIndex(node.getChild(node.getChildCount()-1));
+    }
 }


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

Reply via email to