-
Notifications
You must be signed in to change notification settings - Fork 2.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[incubator-kie-drools-5874] [new-parser] Adapt drlIdentifier to opera… #5951
base: dev-new-parser
Are you sure you want to change the base?
[incubator-kie-drools-5874] [new-parser] Adapt drlIdentifier to opera… #5951
Conversation
…tor_key and neg_operator_key in DRL6Expressions.g4
@yurloc @mariofusco @gitgabrio Please review, Thanks! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Unfortunately, this breaks the kie-dmn-validation
module:
[INFO] --- exec-maven-plugin:1.5.0:java (validation-bootstrap) @ kie-dmn-validation ---
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/var/home/jlocker/.m2/repository/ch/qos/logback/logback-classic/1.2.13/logback-classic-1.2.13.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/var/home/jlocker/.m2/repository/org/slf4j/slf4j-jdk14/1.5.6/slf4j-jdk14-1.5.6.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [ch.qos.logback.classic.util.ContextSelectorStaticBinder]
### parse : ANTLR4_PARSER_ENABLED = true
### parse : ANTLR4_PARSER_ENABLED = true
### parse : ANTLR4_PARSER_ENABLED = true
### parse : ANTLR4_PARSER_ENABLED = true
### parse : ANTLR4_PARSER_ENABLED = true
### parse : ANTLR4_PARSER_ENABLED = true
### parse : ANTLR4_PARSER_ENABLED = true
### parse : ANTLR4_PARSER_ENABLED = true
line 101:8 rule neg_operator_key failed predicate: {(helper.isPluggableEvaluator(true))}?
line 101:66 no viable alternative at input 'from $importDef'
line 102:0 missing '(' at 'then'
00:17:40.668 [org.kie.dmn.validation.bootstrap.ValidationBootstrapMain.main()] ERROR o.d.d.parser.antlr4.DRLParserWrapper.parse:77 - Exception while creating PackageDescr
java.lang.IndexOutOfBoundsException: Index 0 out of bounds for length 0
at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:100)
at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:106)
at java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:302)
at java.base/java.util.Objects.checkIndex(Objects.java:359)
at java.base/java.util.ArrayList.get(ArrayList.java:427)
at org.drools.drl.parser.antlr4.DRLVisitorImpl.visitLhsUnary(DRLVisitorImpl.java:1092)
at org.drools.drl.parser.antlr4.DRLVisitorImpl.visitLhsUnary(DRLVisitorImpl.java:83)
at org.drools.drl.parser.antlr4.DRLParser$LhsUnaryContext.accept(DRLParser.java:2548)
at org.antlr.v4.runtime.tree.AbstractParseTreeVisitor.visitChildren(AbstractParseTreeVisitor.java:46)
at org.drools.drl.parser.antlr4.DRLParserBaseVisitor.visitLhsUnarySingle(DRLParserBaseVisitor.java:201)
at org.drools.drl.parser.antlr4.DRLParser$LhsUnarySingleContext.accept(DRLParser.java:2117)
at org.drools.drl.parser.antlr4.DRLVisitorImpl.visitDescrChildren(DRLVisitorImpl.java:1106)
at org.drools.drl.parser.antlr4.DRLVisitorImpl.visitLhs(DRLVisitorImpl.java:538)
at org.drools.drl.parser.antlr4.DRLVisitorImpl.visitRuledef(DRLVisitorImpl.java:346)
at org.drools.drl.parser.antlr4.DRLVisitorImpl.visitRuledef(DRLVisitorImpl.java:83)
at org.drools.drl.parser.antlr4.DRLParser$RuledefContext.accept(DRLParser.java:1667)
at org.drools.drl.parser.antlr4.DRLVisitorImpl.visitDescrChildren(DRLVisitorImpl.java:1106)
at org.drools.drl.parser.antlr4.DRLVisitorImpl.visitDrlStatementdef(DRLVisitorImpl.java:166)
at org.drools.drl.parser.antlr4.DRLVisitorImpl.visitDrlStatementdef(DRLVisitorImpl.java:83)
at org.drools.drl.parser.antlr4.DRLParser$DrlStatementdefContext.accept(DRLParser.java:526)
at org.drools.drl.parser.antlr4.DRLVisitorImpl.visitDescrChildren(DRLVisitorImpl.java:1106)
at org.drools.drl.parser.antlr4.DRLVisitorImpl.visitCompilationUnit(DRLVisitorImpl.java:102)
at org.drools.drl.parser.antlr4.DRLVisitorImpl.visitCompilationUnit(DRLVisitorImpl.java:83)
at org.drools.drl.parser.antlr4.DRLParser$CompilationUnitContext.accept(DRLParser.java:436)
at org.antlr.v4.runtime.tree.AbstractParseTreeVisitor.visit(AbstractParseTreeVisitor.java:18)
at org.drools.drl.parser.antlr4.DRLParserHelper.compilationUnitContext2PackageDescr(DRLParserHelper.java:94)
at org.drools.drl.parser.antlr4.DRLParserWrapper.parse(DRLParserWrapper.java:75)
at org.drools.drl.parser.antlr4.DRLParserWrapper.parse(DRLParserWrapper.java:55)
at org.drools.drl.parser.DrlParser.lambda$parse$2(DrlParser.java:191)
at org.drools.drl.parser.DrlParser.compileWithAntlr4Parser(DrlParser.java:204)
at org.drools.drl.parser.DrlParser.parse(DrlParser.java:191)
at org.drools.drl.parser.DrlParser.parse(DrlParser.java:179)
at org.drools.drl.parser.DrlParser.parse(DrlParser.java:168)
at org.drools.compiler.builder.impl.resources.DrlResourceHandler.process(DrlResourceHandler.java:55)
at org.drools.compiler.builder.impl.PackageDescrBuilder.buildResource(PackageDescrBuilder.java:73)
at org.drools.compiler.builder.impl.PackageDescrBuilder.build(PackageDescrBuilder.java:51)
at org.drools.compiler.builder.impl.CompositeKnowledgeBuilderImpl.buildPackageDescr(CompositeKnowledgeBuilderImpl.java:173)
at org.drools.compiler.builder.impl.CompositeKnowledgeBuilderImpl.build(CompositeKnowledgeBuilderImpl.java:116)
at org.drools.compiler.builder.impl.CompositeKnowledgeBuilderImpl.build(CompositeKnowledgeBuilderImpl.java:109)
at org.drools.compiler.kie.builder.impl.AbstractKieProject.buildKnowledgePackages(AbstractKieProject.java:274)
at org.drools.compiler.kie.builder.impl.AbstractKieProject.buildKnowledgePackages(AbstractKieProject.java:220)
at org.drools.compiler.kie.builder.impl.AbstractKieProject.verify(AbstractKieProject.java:84)
at org.drools.compiler.kie.builder.impl.KieBuilderImpl.buildKieProject(KieBuilderImpl.java:285)
at org.drools.compiler.kie.builder.impl.KieBuilderImpl.buildAll(KieBuilderImpl.java:251)
at org.kie.dmn.validation.bootstrap.GenerateModel.generate(GenerateModel.java:66)
at org.kie.dmn.validation.bootstrap.ValidationBootstrapMain.main(ValidationBootstrapMain.java:51)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
at java.base/java.lang.reflect.Method.invoke(Method.java:577)
at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:294)
at java.base/java.lang.Thread.run(Thread.java:833)
### parse : ANTLR4_PARSER_ENABLED = true
### parse : ANTLR4_PARSER_ENABLED = true
### parse : ANTLR4_PARSER_ENABLED = true
### parse : ANTLR4_PARSER_ENABLED = true
### parse : ANTLR4_PARSER_ENABLED = true
### parse : ANTLR4_PARSER_ENABLED = true
### parse : ANTLR4_PARSER_ENABLED = true
### parse : ANTLR4_PARSER_ENABLED = true
00:17:41.375 [org.kie.dmn.validation.bootstrap.ValidationBootstrapMain.main()] ERROR o.d.c.k.b.impl.AbstractKieProject.buildKnowledgePackages:280 - Unable to build KieBaseModel:defaultKieBase
[101,8]: rule neg_operator_key failed predicate: {(helper.isPluggableEvaluator(true))}?
[101,66]: no viable alternative at input 'from $importDef'
[102,0]: missing '(' at 'then'
[0,0]: Index 0 out of bounds for length 0
[0,0]: Parser returned a null Package
[WARNING]
java.lang.reflect.InvocationTargetException
at jdk.internal.reflect.DirectMethodHandleAccessor.invoke (DirectMethodHandleAccessor.java:119)
at java.lang.reflect.Method.invoke (Method.java:577)
at org.codehaus.mojo.exec.ExecJavaMojo$1.run (ExecJavaMojo.java:294)
at java.lang.Thread.run (Thread.java:833)
Caused by: org.kie.api.builder.CompilationErrorsException: Unable to create KieModule, Errors Existed: [Message [id=1, kieBase=defaultKieBase, level=ERROR, path=org/kie/dmn/validation/DMNv1_2/dmn-validation-rules-dmndi.drl, line=101, column=0
text=rule neg_operator_key failed predicate: {(helper.isPluggableEvaluator(true))}?], Message [id=2, kieBase=defaultKieBase, level=ERROR, path=org/kie/dmn/validation/DMNv1_2/dmn-validation-rules-dmndi.drl, line=101, column=0
text=no viable alternative at input 'from $importDef'], Message [id=3, kieBase=defaultKieBase, level=ERROR, path=org/kie/dmn/validation/DMNv1_2/dmn-validation-rules-dmndi.drl, line=102, column=0
text=missing '(' at 'then'], Message [id=4, kieBase=defaultKieBase, level=ERROR, path=org/kie/dmn/validation/DMNv1_2/dmn-validation-rules-dmndi.drl, line=0, column=0
text=Index 0 out of bounds for length 0], Message [id=5, kieBase=defaultKieBase, level=ERROR, path=org/kie/dmn/validation/DMNv1_2/dmn-validation-rules-dmndi.drl, line=0, column=0
text=Parser returned a null Package]]
at org.drools.compiler.kie.builder.impl.KieBuilderImpl.getKieModule (KieBuilderImpl.java:526)
at org.drools.compiler.kie.builder.impl.KieBuilderImpl.getKieModule (KieBuilderImpl.java:532)
at org.drools.compiler.kie.builder.impl.KieBuilderImpl.getKieModule (KieBuilderImpl.java:507)
at org.kie.dmn.validation.bootstrap.GenerateModel.generate (GenerateModel.java:74)
at org.kie.dmn.validation.bootstrap.ValidationBootstrapMain.main (ValidationBootstrapMain.java:51)
at jdk.internal.reflect.DirectMethodHandleAccessor.invoke (DirectMethodHandleAccessor.java:104)
at java.lang.reflect.Method.invoke (Method.java:577)
at org.codehaus.mojo.exec.ExecJavaMojo$1.run (ExecJavaMojo.java:294)
at java.lang.Thread.run (Thread.java:833)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 5.132 s
[INFO] Finished at: 2024-05-16T00:17:41+02:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.5.0:java (validation-bootstrap) on project kie-dmn-validation: An exception occured while executing the Java class. null: InvocationTargetException: Unable to create KieModule, Errors Existed: [Message [id=1, kieBase=defaultKieBase, level=ERROR, path=org/kie/dmn/validation/DMNv1_2/dmn-validation-rules-dmndi.drl, line=101, column=0
[ERROR] text=rule neg_operator_key failed predicate: {(helper.isPluggableEvaluator(true))}?], Message [id=2, kieBase=defaultKieBase, level=ERROR, path=org/kie/dmn/validation/DMNv1_2/dmn-validation-rules-dmndi.drl, line=101, column=0
[ERROR] text=no viable alternative at input 'from $importDef'], Message [id=3, kieBase=defaultKieBase, level=ERROR, path=org/kie/dmn/validation/DMNv1_2/dmn-validation-rules-dmndi.drl, line=102, column=0
[ERROR] text=missing '(' at 'then'], Message [id=4, kieBase=defaultKieBase, level=ERROR, path=org/kie/dmn/validation/DMNv1_2/dmn-validation-rules-dmndi.drl, line=0, column=0
[ERROR] text=Index 0 out of bounds for length 0], Message [id=5, kieBase=defaultKieBase, level=ERROR, path=org/kie/dmn/validation/DMNv1_2/dmn-validation-rules-dmndi.drl, line=0, column=0
[ERROR] text=Parser returned a null Package]]
@yurloc Thank you for pointing out that, and sorry for not finding it beforehand. I'll investigate it. |
I found that adding --- 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
@@ -505,7 +505,7 @@ locals [ BaseDescr lsd ]
$relationalExpression::lsd = $result;
}
}
- )*
+ )*?
; |
@tkobayas Is this work still pending? If so what is missing? |
@mariofusco Thanks. I'll come back to work on this. This is relatively low priority. and should not block #5989 |
…tor_key and neg_operator_key in DRL6Expressions.g4
Issue:
drlIdentifier
tooperator_key
andneg_operator_key
inDRL6Expressions.g4
#5874Thanks to d57c5da , this is no longer an issue, so I adapted
drlIdentifier
and enabled the tests.