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]
