yurloc opened a new issue, #5918: URL: https://github.com/apache/incubator-kie-drools/issues/5918
## Parent issue - #5678 ## Failing tests - `org.drools.compiler.integrationtests.AnnotationsTest#testAnnotationOnLHSAndMerging` ## Notes See for example the piece of the old parser that allows annotation after prefix OR: https://github.com/apache/incubator-kie-drools/blob/200c4697aede45bc8a76ea5a9ded7b17233f1b78/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/lang/DRL6Parser.java#L2153 Annotations should also be allowed after infix OR, prefix AND, and infix AND. ## Rule code snippet ``` rule "test collect with annotation" when ( and @Annot String() Integer() ) then end ``` ## Error output ``` ### parse : ANTLR4_PARSER_ENABLED = true line 1:156 no viable alternative at input '( and @' line 1:200 extraneous input ')' expecting 'then' 14:48:53.519 [main] ERROR o.d.d.parser.antlr4.DRLParserWrapper.parse:77 - Exception while creating PackageDescr java.lang.IllegalStateException: ctx.lhsPattern().size() == 0 : at org.drools.drl.parser.antlr4.DRLVisitorImpl.visitLhsPatternBind(DRLVisitorImpl.java:545) at org.drools.drl.parser.antlr4.DRLVisitorImpl.visitLhsPatternBind(DRLVisitorImpl.java:83) at org.drools.drl.parser.antlr4.DRLParser$LhsPatternBindContext.accept(DRLParser.java:2661) at org.drools.drl.parser.antlr4.DRLVisitorImpl.visitDescrChildren(DRLVisitorImpl.java:1075) at org.drools.drl.parser.antlr4.DRLVisitorImpl.visitLhsUnary(DRLVisitorImpl.java:1062) at org.drools.drl.parser.antlr4.DRLVisitorImpl.visitLhsUnary(DRLVisitorImpl.java:83) at org.drools.drl.parser.antlr4.DRLParser$LhsUnaryContext.accept(DRLParser.java:2477) 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:2110) at org.drools.drl.parser.antlr4.DRLVisitorImpl.visitDescrChildren(DRLVisitorImpl.java:1075) at org.drools.drl.parser.antlr4.DRLVisitorImpl.visitLhs(DRLVisitorImpl.java:532) at org.drools.drl.parser.antlr4.DRLVisitorImpl.visitRuledef(DRLVisitorImpl.java:340) at org.drools.drl.parser.antlr4.DRLVisitorImpl.visitRuledef(DRLVisitorImpl.java:83) at org.drools.drl.parser.antlr4.DRLParser$RuledefContext.accept(DRLParser.java:1664) at org.drools.drl.parser.antlr4.DRLVisitorImpl.visitDescrChildren(DRLVisitorImpl.java:1075) 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:523) at org.drools.drl.parser.antlr4.DRLVisitorImpl.visitDescrChildren(DRLVisitorImpl.java:1075) 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:435) at org.antlr.v4.runtime.tree.AbstractParseTreeVisitor.visit(AbstractParseTreeVisitor.java:18) at org.drools.drl.parser.antlr4.DRLParserHelper.compilationUnitContext2PackageDescr(DRLParserHelper.java:91) 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.drools.compiler.kie.builder.impl.KieBuilderImpl.buildAll(KieBuilderImpl.java:208) at org.drools.testcoverage.common.util.KieUtil.getKieBuilderFromKieFileSystem(KieUtil.java:149) at org.drools.testcoverage.common.util.KieUtil.getKieBuilderFromKieFileSystem(KieUtil.java:134) at org.drools.testcoverage.common.util.KieUtil.getKieBuilderFromResources(KieUtil.java:121) at org.drools.testcoverage.common.util.KieUtil.getKieBuilderFromDrls(KieUtil.java:107) at org.drools.compiler.integrationtests.AnnotationsTest.testAnnotationOnLHSAndMerging(AnnotationsTest.java:297) 14:48:53.519 [main] ERROR o.d.c.k.b.impl.AbstractKieProject.buildKnowledgePackages:280 - Unable to build KieBaseModel:KieBaseModelName [1,156]: no viable alternative at input '( and @' [1,200]: extraneous input ')' expecting 'then' [0,0]: [0,0]: Parser returned a null Package 14:48:53.519 [main] ERROR o.d.testcoverage.common.util.KieUtil.getKieBuilderFromKieFileSystem:165 - KieBuilder errors: [Message [id=1, kieBase=KieBaseModelName, level=ERROR, path=rules1.drl, line=1, column=0 text=no viable alternative at input '( and @'], Message [id=2, kieBase=KieBaseModelName, level=ERROR, path=rules1.drl, line=1, column=0 text=extraneous input ')' expecting 'then'], Message [id=3, kieBase=KieBaseModelName, level=ERROR, path=rules1.drl, line=0, column=0 text=], Message [id=4, kieBase=KieBaseModelName, level=ERROR, path=rules1.drl, line=0, column=0 text=Parser returned a null Package]] java.lang.AssertionError: [[Message [id=1, kieBase=KieBaseModelName, level=ERROR, path=rules1.drl, line=1, column=0 text=no viable alternative at input '( and @'], Message [id=2, kieBase=KieBaseModelName, level=ERROR, path=rules1.drl, line=1, column=0 text=extraneous input ')' expecting 'then'], Message [id=3, kieBase=KieBaseModelName, level=ERROR, path=rules1.drl, line=0, column=0 text=], Message [id=4, kieBase=KieBaseModelName, level=ERROR, path=rules1.drl, line=0, column=0 text=Parser returned a null Package]]] Expecting empty but was: [Message [id=1, kieBase=KieBaseModelName, level=ERROR, path=rules1.drl, line=1, column=0 text=no viable alternative at input '( and @'], Message [id=2, kieBase=KieBaseModelName, level=ERROR, path=rules1.drl, line=1, column=0 text=extraneous input ')' expecting 'then'], Message [id=3, kieBase=KieBaseModelName, level=ERROR, path=rules1.drl, line=0, column=0 text=], Message [id=4, kieBase=KieBaseModelName, level=ERROR, path=rules1.drl, line=0, column=0 text=Parser returned a null Package]] at org.drools.testcoverage.common.util.KieUtil.getKieBuilderFromKieFileSystem(KieUtil.java:169) at org.drools.testcoverage.common.util.KieUtil.getKieBuilderFromKieFileSystem(KieUtil.java:134) at org.drools.testcoverage.common.util.KieUtil.getKieBuilderFromResources(KieUtil.java:121) at org.drools.testcoverage.common.util.KieUtil.getKieBuilderFromDrls(KieUtil.java:107) at org.drools.compiler.integrationtests.AnnotationsTest.testAnnotationOnLHSAndMerging(AnnotationsTest.java:297) ``` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
