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]

Reply via email to