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 fab3cf01a3404310f8eb5bf5e78b24660c34a4d0 Author: Toshiya Kobayashi <[email protected]> AuthorDate: Fri Feb 9 17:50:54 2024 +0900 [DROOLS-7591] Experiment branch : migrate a new drools-lsp parser into drools - New parser is migrated in drools-drl/drools-drl-parser with org.drools.drl10.parser package - To enable the new parser, run `mvn test -PDRL10` - At the moment, we get lots of test failures especially in drools-model/drools-model-codegen and drools-test-coverage/test-compiler-integration --- bom/drools-bom/pom.xml | 18 ++++ .../KnowledgeBuilderRulesConfigurationImpl.java | 1 - .../java/org/drools/compiler/lang/DescrDumper.java | 3 +- .../compiler/rule/builder/PatternBuilder.java | 3 +- .../compiler/rule/builder/QueryElementBuilder.java | 5 +- drools-drl/drools-drl-parser-tests/pom.xml | 81 +++++++++++++++ .../drools/drl10}/parser/DRLExprParserTest.java | 5 +- .../org/drools/drl10}/parser/DRLParserTest.java | 8 +- .../org/drools/drl10}/parser/DescrDumperTest.java | 5 +- .../drools/drl10}/parser/MiscDRLParserTest.java | 3 +- .../src/test/resources/logback-test.xml | 0 .../org/drools/drl10}/parser/Rule_with_Extends.drl | 0 .../drools/drl10}/parser/Rule_with_Metadata.drl | 0 .../drools/drl10}/parser/Rule_with_nested_LHS.drl | 0 .../org/drools/drl10}/parser/accumulate.drl | 0 .../drl10}/parser/accumulateExternalFunction.drl | 0 .../drl10}/parser/accumulateMultipleFunctions.drl | 0 .../accumulateMultipleFunctionsConstraint.drl | 0 .../org/drools/drl10}/parser/accumulateReverse.drl | 0 .../drl10}/parser/accumulate_multi_pattern.drl | 0 .../drl10}/parser/accumulate_with_bindings.drl | 0 .../drl10}/parser/accumulate_with_nested_from.drl | 0 .../org/drools/drl10}/parser/almost_empty_rule.drl | 0 .../org/drools/drl10}/parser/and_or_rule.drl | 0 .../org/drools/drl10}/parser/autofocus.drl | 0 .../org/drools/drl10}/parser/basic_binding.drl | 0 .../org/drools/drl10}/parser/bindings.drl | 0 .../drools/drl10}/parser/brackets_precedence.drl | 0 .../resources/org/drools/drl10}/parser/collect.drl | 0 .../drl10}/parser/collect_with_nested_from.drl | 0 .../resources/org/drools/drl10}/parser/comment.drl | 0 .../resources/org/drools/drl10}/parser/complex.dsl | 0 .../drl10}/parser/declaration-in-consequence.drl | 0 .../drl10}/parser/declare_type_with_fields.drl | 0 .../org/drools/drl10}/parser/empty_rule.drl | 0 .../org/drools/drl10}/parser/enumeration.drl | 0 .../drools/drl10}/parser/eol_funny_business.drl | 0 .../org/drools/drl10}/parser/escaped-string.drl | 0 .../org/drools/drl10}/parser/eval_multiple.drl | 0 .../org/drools/drl10}/parser/eval_parsing.drl | 0 .../org/drools/drl10}/parser/eval_with_newline.drl | 0 .../parser/expander_multiple_constraints.dslr | 0 .../expander_multiple_constraints_flush.dslr | 0 .../drl10}/parser/expander_spread_lines.dslr | 0 .../org/drools/drl10}/parser/extra_lhs_newline.drl | 0 .../resources/org/drools/drl10}/parser/forall.drl | 0 .../org/drools/drl10}/parser/forallwithfrom.drl | 0 .../resources/org/drools/drl10}/parser/from.drl | 0 .../org/drools/drl10}/parser/function_arrays.drl | 0 .../org/drools/drl10}/parser/functions.drl | 0 .../resources/org/drools/drl10}/parser/globals.drl | 0 .../org/drools/drl10}/parser/in_operator_test.drl | 0 .../drools/drl10}/parser/lhs_semicolon_delim.drl | 0 .../drl10}/parser/literal_bool_and_negative.drl | 0 .../drools/drl10}/parser/multiple_constraints.dsl | 0 .../org/drools/drl10}/parser/multiple_rules.drl | 0 .../drl10}/parser/nested_conditional_elements.drl | 0 .../resources/org/drools/drl10}/parser/no-loop.drl | 0 .../drl10}/parser/not_exist_with_brackets.drl | 0 .../drools/drl10}/parser/not_with_constraint.drl | 0 .../drools/drl10}/parser/notin_operator_test.drl | 0 .../org/drools/drl10}/parser/or_binding.drl | 0 .../drools/drl10}/parser/or_binding_complex.drl | 0 .../drl10}/parser/or_binding_with_brackets.drl | 0 .../resources/org/drools/drl10}/parser/or_ce.drl | 0 .../org/drools/drl10}/parser/or_nesting.drl | 0 .../drools/drl10}/parser/package_attributes.drl | 0 .../drools/drl10}/parser/pluggable_operators.drl | 0 .../drools/drl10}/parser/qualified_classname.drl | 0 .../org/drools/drl10}/parser/query_and_rule.drl | 0 .../drl10}/parser/quoted_string_name_rule.drl | 0 .../org/drools/drl10}/parser/restrictions_test.drl | 0 .../org/drools/drl10}/parser/rule_attributes.drl | 0 .../org/drools/drl10}/parser/rule_attributes2.drl | 0 .../drools/drl10}/parser/rule_attributes_alt.drl | 0 .../drl10}/parser/rule_calendars_attribute.drl | 0 .../drl10}/parser/rule_calendars_attribute2.drl | 0 .../drl10}/parser/rule_duration_expression.drl | 0 .../drl10}/parser/rule_enabled_expression.drl | 0 .../drl10}/parser/rule_names_number_prefix.drl | 0 .../org/drools/drl10}/parser/rule_not.drl | 0 .../org/drools/drl10}/parser/ruleflowgroup.drl | 0 .../org/drools/drl10}/parser/semicolon.drl | 0 .../org/drools/drl10}/parser/simple_query.drl | 0 .../org/drools/drl10}/parser/simple_rule.drl | 0 .../drools/drl10}/parser/soundslike_operator.drl | 0 .../drools/drl10}/parser/statement_ordering_1.drl | 0 .../drools/drl10}/parser/ternary_expression.drl | 0 .../test_CommentLineNumbersInConsequence.drl | 0 .../parser/test_ComplexChainedCallWithFrom.drl | 0 .../org/drools/drl10}/parser/test_EmptyPattern.drl | 0 .../org/drools/drl10}/parser/test_EndPosition.drl | 0 .../drools/drl10}/parser/test_FunctionImport.drl | 0 .../parser/test_SimpleAccessorArgWithFrom.drl | 0 .../drl10}/parser/test_SimpleAccessorWithFrom.drl | 0 .../parser/test_SimpleFunctionCallWithFrom.drl | 0 .../parser/test_SimpleMethodCallWithFrom.drl | 0 .../org/drools/drl10}/parser/type_with_meta.drl | 0 .../org/drools/drl10}/parser/with_eval.drl | 0 .../org/drools/drl10}/parser/with_predicate.drl | 0 .../org/drools/drl10}/parser/with_retval.drl | 0 drools-drl/drools-drl-parser/pom.xml | 45 ++++++++ .../org/drools/drl10}/parser/DRL6Expressions.g4 | 0 .../antlr4/org/drools/drl10}/parser/DRLLexer.g4 | 0 .../antlr4/org/drools/drl10}/parser/DRLParser.g4 | 0 .../antlr4/org/drools/drl10}/parser/JavaLexer.g4 | 0 .../antlr4/org/drools/drl10}/parser/JavaParser.g4 | 0 .../java/org/drools/drl/parser/DRLFactory.java | 3 + .../{DrlExprParser.java => Drl6ExprParser.java} | 8 +- .../java/org/drools/drl/parser/DrlExprParser.java | 56 ++-------- .../drools/drl/parser/DrlExprParserFactory.java | 20 ++++ .../main/java/org/drools/drl/parser/DrlParser.java | 35 ++++++- .../org/drools/drl/parser/lang/DRL10Lexer.java | 42 +++----- .../org/drools/drl10/parser/DRLErrorListener.java | 45 ++++---- .../org/drools/drl10}/parser/DRLExpressions.java | 2 +- .../org/drools/drl10}/parser/DRLParserError.java | 20 +++- .../drools/drl10/parser/DRLParserException.java | 30 ++++++ .../org/drools/drl10}/parser/DRLParserHelper.java | 20 +++- .../org/drools/drl10}/parser/DRLParserWrapper.java | 22 +++- .../org/drools/drl10}/parser/DRLVisitorImpl.java | 31 ++++-- .../org/drools/drl10/parser}/Developer_Notes.md | 0 .../org/drools/drl10/parser/Drl10ExprParser.java} | 9 +- .../parser/DroolsParserExceptionFactory.java | 2 +- .../org/drools/drl10}/parser/ParserHelper.java | 4 +- .../drools/drl10}/parser/ParserStringUtils.java | 20 +++- drools-drl/drools-drl10-parser/.gitignore | 18 ---- drools-drl/drools-drl10-parser/pom.xml | 115 --------------------- .../java/org/drools/parser/DRLErrorListener.java | 31 ------ .../java/org/drools/parser/DRLParserException.java | 12 --- drools-drl/pom.xml | 1 + .../test-compiler-integration/pom.xml | 21 ++++ .../mvel/compiler/lang/DRLExprParserTest.java | 3 +- .../drools/mvel/compiler/lang/DescrDumperTest.java | 3 +- .../mvel/integrationtests/AlphaNodeTest.java | 4 +- .../visitor/ExprConstraintDescrVisitor.java | 3 +- .../internal/builder/conf/LanguageLevelOption.java | 2 +- pom.xml | 22 ++++ 137 files changed, 458 insertions(+), 323 deletions(-) diff --git a/bom/drools-bom/pom.xml b/bom/drools-bom/pom.xml index 51378329dd..76a2bd10db 100644 --- a/bom/drools-bom/pom.xml +++ b/bom/drools-bom/pom.xml @@ -767,6 +767,24 @@ <type>test-jar</type> <scope>test</scope> </dependency> + <dependency> + <groupId>org.drools</groupId> + <artifactId>drools-drl10-parser</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.drools</groupId> + <artifactId>drools-drl10-parser</artifactId> + <version>${project.version}</version> + <classifier>sources</classifier> + </dependency> + <dependency> + <groupId>org.drools</groupId> + <artifactId>drools-drl10-parser</artifactId> + <version>${project.version}</version> + <type>test-jar</type> + <scope>test</scope> + </dependency> <dependency> <groupId>org.drools</groupId> <artifactId>drools-compiler</artifactId> diff --git a/drools-compiler/src/main/java/org/drools/compiler/builder/impl/KnowledgeBuilderRulesConfigurationImpl.java b/drools-compiler/src/main/java/org/drools/compiler/builder/impl/KnowledgeBuilderRulesConfigurationImpl.java index 0c90262aa2..48e3e4971f 100644 --- a/drools-compiler/src/main/java/org/drools/compiler/builder/impl/KnowledgeBuilderRulesConfigurationImpl.java +++ b/drools-compiler/src/main/java/org/drools/compiler/builder/impl/KnowledgeBuilderRulesConfigurationImpl.java @@ -127,7 +127,6 @@ public class KnowledgeBuilderRulesConfigurationImpl extends BaseConfiguration<Kn } private void init() { - setProperty( TrimCellsInDTableOption.PROPERTY_NAME, getPropertyValue(TrimCellsInDTableOption.PROPERTY_NAME, "true")); diff --git a/drools-compiler/src/main/java/org/drools/compiler/lang/DescrDumper.java b/drools-compiler/src/main/java/org/drools/compiler/lang/DescrDumper.java index b3f40adbb8..5cc792e61d 100644 --- a/drools-compiler/src/main/java/org/drools/compiler/lang/DescrDumper.java +++ b/drools-compiler/src/main/java/org/drools/compiler/lang/DescrDumper.java @@ -34,6 +34,7 @@ import org.drools.drl.ast.descr.ExprConstraintDescr; import org.drools.drl.ast.descr.OperatorDescr; import org.drools.drl.ast.descr.RelationalExprDescr; import org.drools.drl.parser.DrlExprParser; +import org.drools.drl.parser.DrlExprParserFactory; import org.drools.drl.parser.impl.Operator; import org.kie.internal.builder.conf.LanguageLevelOption; @@ -137,7 +138,7 @@ public class DescrDumper extends ReflectiveVisitor implements ExpressionRewriter } private void processConstraint(StringBuilder sbuilder, ExprConstraintDescr base, boolean isInsideRelCons, DumperContext context) { - DrlExprParser expr = new DrlExprParser( context.getRuleContext().getConfiguration().getOption(LanguageLevelOption.KEY)); + DrlExprParser expr = DrlExprParserFactory.getDrlExrParser(context.getRuleContext().getConfiguration().getOption(LanguageLevelOption.KEY)); ConstraintConnectiveDescr result = expr.parse( base.getExpression() ); if ( result.getDescrs().size() == 1 ) { dump( sbuilder, diff --git a/drools-compiler/src/main/java/org/drools/compiler/rule/builder/PatternBuilder.java b/drools-compiler/src/main/java/org/drools/compiler/rule/builder/PatternBuilder.java index fdd709abcd..bc91077120 100644 --- a/drools-compiler/src/main/java/org/drools/compiler/rule/builder/PatternBuilder.java +++ b/drools-compiler/src/main/java/org/drools/compiler/rule/builder/PatternBuilder.java @@ -98,6 +98,7 @@ import org.drools.drl.ast.descr.RelationalExprDescr; import org.drools.drl.ast.descr.ReturnValueRestrictionDescr; import org.drools.drl.ast.descr.RuleDescr; import org.drools.drl.parser.DrlExprParser; +import org.drools.drl.parser.DrlExprParserFactory; import org.drools.drl.parser.DroolsParserException; import org.drools.util.ClassUtils; import org.drools.util.StringUtils; @@ -1802,7 +1803,7 @@ public class PatternBuilder implements RuleConditionBuilder<PatternDescr> { final PatternDescr patternDescr, final BaseDescr original, final String expression) { - DrlExprParser parser = new DrlExprParser(context.getConfiguration().getOption(LanguageLevelOption.KEY)); + DrlExprParser parser = DrlExprParserFactory.getDrlExrParser(context.getConfiguration().getOption(LanguageLevelOption.KEY)); ConstraintConnectiveDescr result = parser.parse(normalizeEval(expression)); result.setResource(patternDescr.getResource()); result.copyLocation(original); diff --git a/drools-compiler/src/main/java/org/drools/compiler/rule/builder/QueryElementBuilder.java b/drools-compiler/src/main/java/org/drools/compiler/rule/builder/QueryElementBuilder.java index 9c20dd4f2f..3889990858 100644 --- a/drools-compiler/src/main/java/org/drools/compiler/rule/builder/QueryElementBuilder.java +++ b/drools-compiler/src/main/java/org/drools/compiler/rule/builder/QueryElementBuilder.java @@ -46,6 +46,7 @@ import org.drools.drl.ast.descr.ConstraintConnectiveDescr; import org.drools.drl.ast.descr.ExprConstraintDescr; import org.drools.drl.ast.descr.PatternDescr; import org.drools.drl.parser.DrlExprParser; +import org.drools.drl.parser.DrlExprParserFactory; import org.drools.drl.parser.DroolsParserException; import org.drools.util.ClassUtils; import org.drools.util.StringUtils; @@ -264,7 +265,7 @@ public class QueryElementBuilder } else { // it must be a literal/expression // it's an expression and thus an input - DrlExprParser parser = new DrlExprParser( context.getConfiguration().getOption(LanguageLevelOption.KEY)); + DrlExprParser parser = DrlExprParserFactory.getDrlExrParser(context.getConfiguration().getOption(LanguageLevelOption.KEY)); ConstraintConnectiveDescr bresult = parser.parse( bind.getExpression() ); if ( parser.hasErrors() ) { for ( DroolsParserException error : parser.getErrors() ) { @@ -395,7 +396,7 @@ public class QueryElementBuilder private ConstraintConnectiveDescr parseExpression( final RuleBuildContext context, final PatternDescr patternDescr, final String expression ) { - DrlExprParser parser = new DrlExprParser( context.getConfiguration().getOption(LanguageLevelOption.KEY)); + DrlExprParser parser = DrlExprParserFactory.getDrlExrParser( context.getConfiguration().getOption(LanguageLevelOption.KEY)); ConstraintConnectiveDescr result = parser.parse( expression ); if ( result == null || parser.hasErrors() ) { for ( DroolsParserException error : parser.getErrors() ) { diff --git a/drools-drl/drools-drl-parser-tests/pom.xml b/drools-drl/drools-drl-parser-tests/pom.xml new file mode 100644 index 0000000000..7e0c4d5f88 --- /dev/null +++ b/drools-drl/drools-drl-parser-tests/pom.xml @@ -0,0 +1,81 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. + +--> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.drools</groupId> + <artifactId>drools-drl</artifactId> + <version>999-SNAPSHOT</version> + </parent> + + <groupId>org.drools</groupId> + <artifactId>drools-drl-parser-tests</artifactId> + + <name>Drools :: DRL :: Parser :: Tests</name> + + <properties> + <java.module.name>org.drools.drl.parser.tests</java.module.name> + </properties> + + <dependencies> + <!-- Tests --> + <dependency> + <groupId>org.assertj</groupId> + <artifactId>assertj-core</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.junit.jupiter</groupId> + <artifactId>junit-jupiter-api</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.junit.jupiter</groupId> + <artifactId>junit-jupiter-engine</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>ch.qos.logback</groupId> + <artifactId>logback-classic</artifactId> + <scope>test</scope> + </dependency> + + <dependency> + <groupId>org.drools</groupId> + <artifactId>drools-drl-parser</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.drools</groupId> + <artifactId>drools-compiler</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.drools</groupId> + <artifactId>drools-mvel</artifactId> + <scope>test</scope> + </dependency> + </dependencies> + +</project> diff --git a/drools-drl/drools-drl10-parser/src/test/java/org/drools/parser/DRLExprParserTest.java b/drools-drl/drools-drl-parser-tests/src/test/java/org/drools/drl10/parser/DRLExprParserTest.java similarity index 98% rename from drools-drl/drools-drl10-parser/src/test/java/org/drools/parser/DRLExprParserTest.java rename to drools-drl/drools-drl-parser-tests/src/test/java/org/drools/drl10/parser/DRLExprParserTest.java index f233439f36..1f27a9c861 100644 --- a/drools-drl/drools-drl10-parser/src/test/java/org/drools/parser/DRLExprParserTest.java +++ b/drools-drl/drools-drl-parser-tests/src/test/java/org/drools/drl10/parser/DRLExprParserTest.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.drools.parser; +package org.drools.drl10.parser; import static org.assertj.core.api.Assertions.assertThat; @@ -25,6 +25,7 @@ import org.drools.drl.ast.descr.BindingDescr; import org.drools.drl.ast.descr.ConnectiveType; import org.drools.drl.ast.descr.ConstraintConnectiveDescr; import org.drools.drl.ast.descr.RelationalExprDescr; +import org.drools.drl.parser.DrlExprParser; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -40,7 +41,7 @@ public class DRLExprParserTest { @BeforeEach public void setUp() throws Exception { - this.parser = new DrlExprParser(LanguageLevelOption.DRL6); + this.parser = new Drl10ExprParser(LanguageLevelOption.DRL6); } @AfterEach diff --git a/drools-drl/drools-drl10-parser/src/test/java/org/drools/parser/DRLParserTest.java b/drools-drl/drools-drl-parser-tests/src/test/java/org/drools/drl10/parser/DRLParserTest.java similarity index 94% rename from drools-drl/drools-drl10-parser/src/test/java/org/drools/parser/DRLParserTest.java rename to drools-drl/drools-drl-parser-tests/src/test/java/org/drools/drl10/parser/DRLParserTest.java index 83a8b1f5d2..35c4638ebc 100644 --- a/drools-drl/drools-drl10-parser/src/test/java/org/drools/parser/DRLParserTest.java +++ b/drools-drl/drools-drl-parser-tests/src/test/java/org/drools/drl10/parser/DRLParserTest.java @@ -1,4 +1,4 @@ -package org.drools.parser; +package org.drools.drl10.parser; import java.util.List; @@ -13,9 +13,9 @@ import org.drools.drl.ast.descr.RuleDescr; import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.assertThat; -import static org.drools.parser.DRLParserHelper.computeTokenIndex; -import static org.drools.parser.DRLParserHelper.createDrlParser; -import static org.drools.parser.DRLParserHelper.parse; +import static org.drools.drl10.parser.DRLParserHelper.computeTokenIndex; +import static org.drools.drl10.parser.DRLParserHelper.createDrlParser; +import static org.drools.drl10.parser.DRLParserHelper.parse; class DRLParserTest { diff --git a/drools-drl/drools-drl10-parser/src/test/java/org/drools/parser/DescrDumperTest.java b/drools-drl/drools-drl-parser-tests/src/test/java/org/drools/drl10/parser/DescrDumperTest.java similarity index 99% rename from drools-drl/drools-drl10-parser/src/test/java/org/drools/parser/DescrDumperTest.java rename to drools-drl/drools-drl-parser-tests/src/test/java/org/drools/drl10/parser/DescrDumperTest.java index d0a18797c1..d98ec8ec89 100644 --- a/drools-drl/drools-drl10-parser/src/test/java/org/drools/parser/DescrDumperTest.java +++ b/drools-drl/drools-drl-parser-tests/src/test/java/org/drools/drl10/parser/DescrDumperTest.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.drools.parser; +package org.drools.drl10.parser; import static org.assertj.core.api.Assertions.assertThat; @@ -25,6 +25,7 @@ import org.drools.compiler.lang.DumperContext; import org.drools.drl.ast.descr.AtomicExprDescr; import org.drools.drl.ast.descr.BindingDescr; import org.drools.drl.ast.descr.ConstraintConnectiveDescr; +import org.drools.drl.parser.DrlExprParser; import org.drools.mvel.evaluators.MatchesEvaluatorsDefinition; import org.drools.mvel.evaluators.SetEvaluatorsDefinition; import org.junit.jupiter.api.BeforeEach; @@ -357,7 +358,7 @@ public class DescrDumperTest { } public ConstraintConnectiveDescr parse( final String constraint ) { - DrlExprParser parser = new DrlExprParser(LanguageLevelOption.DRL6); + DrlExprParser parser = new Drl10ExprParser(LanguageLevelOption.DRL6); ConstraintConnectiveDescr result = parser.parse( constraint ); assertThat(parser.hasErrors()).as(parser.getErrors().toString()).isFalse(); diff --git a/drools-drl/drools-drl10-parser/src/test/java/org/drools/parser/MiscDRLParserTest.java b/drools-drl/drools-drl-parser-tests/src/test/java/org/drools/drl10/parser/MiscDRLParserTest.java similarity index 99% rename from drools-drl/drools-drl10-parser/src/test/java/org/drools/parser/MiscDRLParserTest.java rename to drools-drl/drools-drl-parser-tests/src/test/java/org/drools/drl10/parser/MiscDRLParserTest.java index 229524867d..6353be53ac 100644 --- a/drools-drl/drools-drl10-parser/src/test/java/org/drools/parser/MiscDRLParserTest.java +++ b/drools-drl/drools-drl-parser-tests/src/test/java/org/drools/drl10/parser/MiscDRLParserTest.java @@ -1,4 +1,4 @@ -package org.drools.parser; +package org.drools.drl10.parser; import java.io.BufferedReader; import java.io.IOException; @@ -39,6 +39,7 @@ import org.drools.drl.ast.descr.RuleDescr; import org.drools.drl.ast.descr.TypeDeclarationDescr; import org.drools.drl.ast.descr.TypeFieldDescr; import org.drools.drl.ast.descr.WindowDeclarationDescr; +import org.drools.drl10.parser.DRLParserWrapper; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Disabled; diff --git a/drools-drl/drools-drl10-parser/src/test/resources/logback-test.xml b/drools-drl/drools-drl-parser-tests/src/test/resources/logback-test.xml similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/logback-test.xml rename to drools-drl/drools-drl-parser-tests/src/test/resources/logback-test.xml diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/Rule_with_Extends.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/Rule_with_Extends.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/Rule_with_Extends.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/Rule_with_Extends.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/Rule_with_Metadata.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/Rule_with_Metadata.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/Rule_with_Metadata.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/Rule_with_Metadata.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/Rule_with_nested_LHS.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/Rule_with_nested_LHS.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/Rule_with_nested_LHS.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/Rule_with_nested_LHS.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/accumulate.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/accumulate.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/accumulate.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/accumulate.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/accumulateExternalFunction.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/accumulateExternalFunction.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/accumulateExternalFunction.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/accumulateExternalFunction.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/accumulateMultipleFunctions.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/accumulateMultipleFunctions.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/accumulateMultipleFunctions.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/accumulateMultipleFunctions.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/accumulateMultipleFunctionsConstraint.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/accumulateMultipleFunctionsConstraint.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/accumulateMultipleFunctionsConstraint.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/accumulateMultipleFunctionsConstraint.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/accumulateReverse.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/accumulateReverse.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/accumulateReverse.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/accumulateReverse.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/accumulate_multi_pattern.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/accumulate_multi_pattern.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/accumulate_multi_pattern.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/accumulate_multi_pattern.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/accumulate_with_bindings.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/accumulate_with_bindings.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/accumulate_with_bindings.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/accumulate_with_bindings.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/accumulate_with_nested_from.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/accumulate_with_nested_from.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/accumulate_with_nested_from.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/accumulate_with_nested_from.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/almost_empty_rule.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/almost_empty_rule.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/almost_empty_rule.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/almost_empty_rule.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/and_or_rule.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/and_or_rule.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/and_or_rule.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/and_or_rule.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/autofocus.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/autofocus.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/autofocus.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/autofocus.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/basic_binding.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/basic_binding.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/basic_binding.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/basic_binding.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/bindings.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/bindings.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/bindings.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/bindings.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/brackets_precedence.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/brackets_precedence.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/brackets_precedence.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/brackets_precedence.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/collect.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/collect.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/collect.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/collect.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/collect_with_nested_from.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/collect_with_nested_from.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/collect_with_nested_from.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/collect_with_nested_from.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/comment.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/comment.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/comment.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/comment.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/complex.dsl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/complex.dsl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/complex.dsl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/complex.dsl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/declaration-in-consequence.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/declaration-in-consequence.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/declaration-in-consequence.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/declaration-in-consequence.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/declare_type_with_fields.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/declare_type_with_fields.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/declare_type_with_fields.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/declare_type_with_fields.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/empty_rule.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/empty_rule.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/empty_rule.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/empty_rule.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/enumeration.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/enumeration.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/enumeration.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/enumeration.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/eol_funny_business.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/eol_funny_business.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/eol_funny_business.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/eol_funny_business.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/escaped-string.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/escaped-string.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/escaped-string.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/escaped-string.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/eval_multiple.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/eval_multiple.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/eval_multiple.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/eval_multiple.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/eval_parsing.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/eval_parsing.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/eval_parsing.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/eval_parsing.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/eval_with_newline.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/eval_with_newline.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/eval_with_newline.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/eval_with_newline.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/expander_multiple_constraints.dslr b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/expander_multiple_constraints.dslr similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/expander_multiple_constraints.dslr rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/expander_multiple_constraints.dslr diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/expander_multiple_constraints_flush.dslr b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/expander_multiple_constraints_flush.dslr similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/expander_multiple_constraints_flush.dslr rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/expander_multiple_constraints_flush.dslr diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/expander_spread_lines.dslr b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/expander_spread_lines.dslr similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/expander_spread_lines.dslr rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/expander_spread_lines.dslr diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/extra_lhs_newline.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/extra_lhs_newline.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/extra_lhs_newline.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/extra_lhs_newline.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/forall.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/forall.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/forall.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/forall.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/forallwithfrom.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/forallwithfrom.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/forallwithfrom.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/forallwithfrom.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/from.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/from.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/from.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/from.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/function_arrays.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/function_arrays.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/function_arrays.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/function_arrays.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/functions.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/functions.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/functions.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/functions.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/globals.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/globals.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/globals.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/globals.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/in_operator_test.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/in_operator_test.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/in_operator_test.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/in_operator_test.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/lhs_semicolon_delim.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/lhs_semicolon_delim.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/lhs_semicolon_delim.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/lhs_semicolon_delim.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/literal_bool_and_negative.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/literal_bool_and_negative.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/literal_bool_and_negative.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/literal_bool_and_negative.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/multiple_constraints.dsl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/multiple_constraints.dsl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/multiple_constraints.dsl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/multiple_constraints.dsl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/multiple_rules.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/multiple_rules.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/multiple_rules.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/multiple_rules.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/nested_conditional_elements.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/nested_conditional_elements.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/nested_conditional_elements.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/nested_conditional_elements.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/no-loop.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/no-loop.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/no-loop.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/no-loop.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/not_exist_with_brackets.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/not_exist_with_brackets.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/not_exist_with_brackets.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/not_exist_with_brackets.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/not_with_constraint.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/not_with_constraint.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/not_with_constraint.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/not_with_constraint.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/notin_operator_test.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/notin_operator_test.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/notin_operator_test.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/notin_operator_test.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/or_binding.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/or_binding.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/or_binding.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/or_binding.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/or_binding_complex.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/or_binding_complex.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/or_binding_complex.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/or_binding_complex.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/or_binding_with_brackets.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/or_binding_with_brackets.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/or_binding_with_brackets.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/or_binding_with_brackets.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/or_ce.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/or_ce.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/or_ce.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/or_ce.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/or_nesting.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/or_nesting.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/or_nesting.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/or_nesting.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/package_attributes.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/package_attributes.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/package_attributes.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/package_attributes.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/pluggable_operators.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/pluggable_operators.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/pluggable_operators.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/pluggable_operators.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/qualified_classname.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/qualified_classname.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/qualified_classname.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/qualified_classname.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/query_and_rule.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/query_and_rule.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/query_and_rule.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/query_and_rule.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/quoted_string_name_rule.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/quoted_string_name_rule.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/quoted_string_name_rule.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/quoted_string_name_rule.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/restrictions_test.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/restrictions_test.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/restrictions_test.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/restrictions_test.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/rule_attributes.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/rule_attributes.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/rule_attributes.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/rule_attributes.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/rule_attributes2.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/rule_attributes2.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/rule_attributes2.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/rule_attributes2.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/rule_attributes_alt.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/rule_attributes_alt.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/rule_attributes_alt.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/rule_attributes_alt.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/rule_calendars_attribute.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/rule_calendars_attribute.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/rule_calendars_attribute.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/rule_calendars_attribute.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/rule_calendars_attribute2.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/rule_calendars_attribute2.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/rule_calendars_attribute2.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/rule_calendars_attribute2.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/rule_duration_expression.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/rule_duration_expression.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/rule_duration_expression.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/rule_duration_expression.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/rule_enabled_expression.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/rule_enabled_expression.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/rule_enabled_expression.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/rule_enabled_expression.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/rule_names_number_prefix.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/rule_names_number_prefix.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/rule_names_number_prefix.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/rule_names_number_prefix.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/rule_not.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/rule_not.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/rule_not.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/rule_not.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/ruleflowgroup.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/ruleflowgroup.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/ruleflowgroup.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/ruleflowgroup.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/semicolon.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/semicolon.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/semicolon.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/semicolon.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/simple_query.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/simple_query.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/simple_query.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/simple_query.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/simple_rule.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/simple_rule.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/simple_rule.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/simple_rule.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/soundslike_operator.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/soundslike_operator.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/soundslike_operator.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/soundslike_operator.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/statement_ordering_1.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/statement_ordering_1.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/statement_ordering_1.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/statement_ordering_1.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/ternary_expression.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/ternary_expression.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/ternary_expression.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/ternary_expression.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/test_CommentLineNumbersInConsequence.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/test_CommentLineNumbersInConsequence.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/test_CommentLineNumbersInConsequence.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/test_CommentLineNumbersInConsequence.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/test_ComplexChainedCallWithFrom.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/test_ComplexChainedCallWithFrom.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/test_ComplexChainedCallWithFrom.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/test_ComplexChainedCallWithFrom.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/test_EmptyPattern.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/test_EmptyPattern.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/test_EmptyPattern.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/test_EmptyPattern.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/test_EndPosition.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/test_EndPosition.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/test_EndPosition.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/test_EndPosition.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/test_FunctionImport.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/test_FunctionImport.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/test_FunctionImport.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/test_FunctionImport.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/test_SimpleAccessorArgWithFrom.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/test_SimpleAccessorArgWithFrom.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/test_SimpleAccessorArgWithFrom.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/test_SimpleAccessorArgWithFrom.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/test_SimpleAccessorWithFrom.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/test_SimpleAccessorWithFrom.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/test_SimpleAccessorWithFrom.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/test_SimpleAccessorWithFrom.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/test_SimpleFunctionCallWithFrom.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/test_SimpleFunctionCallWithFrom.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/test_SimpleFunctionCallWithFrom.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/test_SimpleFunctionCallWithFrom.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/test_SimpleMethodCallWithFrom.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/test_SimpleMethodCallWithFrom.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/test_SimpleMethodCallWithFrom.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/test_SimpleMethodCallWithFrom.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/type_with_meta.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/type_with_meta.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/type_with_meta.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/type_with_meta.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/with_eval.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/with_eval.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/with_eval.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/with_eval.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/with_predicate.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/with_predicate.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/with_predicate.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/with_predicate.drl diff --git a/drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/with_retval.drl b/drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/with_retval.drl similarity index 100% rename from drools-drl/drools-drl10-parser/src/test/resources/org/drools/parser/with_retval.drl rename to drools-drl/drools-drl-parser-tests/src/test/resources/org/drools/drl10/parser/with_retval.drl diff --git a/drools-drl/drools-drl-parser/pom.xml b/drools-drl/drools-drl-parser/pom.xml index 545625e5ad..0eeb787100 100644 --- a/drools-drl/drools-drl-parser/pom.xml +++ b/drools-drl/drools-drl-parser/pom.xml @@ -66,7 +66,32 @@ <groupId>org.antlr</groupId> <artifactId>antlr-runtime</artifactId> </dependency> + <dependency> + <groupId>org.antlr</groupId> + <artifactId>antlr4-runtime</artifactId> + </dependency> + <!-- Tests --> + <dependency> + <groupId>org.assertj</groupId> + <artifactId>assertj-core</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.junit.jupiter</groupId> + <artifactId>junit-jupiter-api</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.junit.jupiter</groupId> + <artifactId>junit-jupiter-engine</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>ch.qos.logback</groupId> + <artifactId>logback-classic</artifactId> + <scope>test</scope> + </dependency> </dependencies> <build> @@ -101,6 +126,26 @@ </plugins> </pluginManagement> + <plugins> + <!-- Consider if we will generate codes with a specific profile and copy them to src/main --> + <plugin> + <groupId>org.antlr</groupId> + <artifactId>antlr4-maven-plugin</artifactId> + <version>${version.org.antlr4}</version> + <executions> + <execution> + <goals> + <goal>antlr4</goal> + </goals> + <configuration> + <visitor>true</visitor> + <listener>false</listener> + <libDirectory>src/main/antlr4/org/drools/drl10/parser/</libDirectory> + </configuration> + </execution> + </executions> + </plugin> + </plugins> </build> <profiles> diff --git a/drools-drl/drools-drl10-parser/src/main/antlr4/org/drools/parser/DRL6Expressions.g4 b/drools-drl/drools-drl-parser/src/main/antlr4/org/drools/drl10/parser/DRL6Expressions.g4 similarity index 100% rename from drools-drl/drools-drl10-parser/src/main/antlr4/org/drools/parser/DRL6Expressions.g4 rename to drools-drl/drools-drl-parser/src/main/antlr4/org/drools/drl10/parser/DRL6Expressions.g4 diff --git a/drools-drl/drools-drl10-parser/src/main/antlr4/org/drools/parser/DRLLexer.g4 b/drools-drl/drools-drl-parser/src/main/antlr4/org/drools/drl10/parser/DRLLexer.g4 similarity index 100% rename from drools-drl/drools-drl10-parser/src/main/antlr4/org/drools/parser/DRLLexer.g4 rename to drools-drl/drools-drl-parser/src/main/antlr4/org/drools/drl10/parser/DRLLexer.g4 diff --git a/drools-drl/drools-drl10-parser/src/main/antlr4/org/drools/parser/DRLParser.g4 b/drools-drl/drools-drl-parser/src/main/antlr4/org/drools/drl10/parser/DRLParser.g4 similarity index 100% rename from drools-drl/drools-drl10-parser/src/main/antlr4/org/drools/parser/DRLParser.g4 rename to drools-drl/drools-drl-parser/src/main/antlr4/org/drools/drl10/parser/DRLParser.g4 diff --git a/drools-drl/drools-drl10-parser/src/main/antlr4/org/drools/parser/JavaLexer.g4 b/drools-drl/drools-drl-parser/src/main/antlr4/org/drools/drl10/parser/JavaLexer.g4 similarity index 100% rename from drools-drl/drools-drl10-parser/src/main/antlr4/org/drools/parser/JavaLexer.g4 rename to drools-drl/drools-drl-parser/src/main/antlr4/org/drools/drl10/parser/JavaLexer.g4 diff --git a/drools-drl/drools-drl10-parser/src/main/antlr4/org/drools/parser/JavaParser.g4 b/drools-drl/drools-drl-parser/src/main/antlr4/org/drools/drl10/parser/JavaParser.g4 similarity index 100% rename from drools-drl/drools-drl10-parser/src/main/antlr4/org/drools/parser/JavaParser.g4 rename to drools-drl/drools-drl-parser/src/main/antlr4/org/drools/drl10/parser/JavaParser.g4 diff --git a/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/DRLFactory.java b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/DRLFactory.java index 15bf0addf0..71b23c2fdd 100644 --- a/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/DRLFactory.java +++ b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/DRLFactory.java @@ -25,6 +25,7 @@ import org.antlr.runtime.CharStream; import org.antlr.runtime.CommonTokenStream; import org.antlr.runtime.RecognizerSharedState; import org.antlr.runtime.TokenStream; +import org.drools.drl.parser.lang.DRL10Lexer; import org.drools.drl.parser.lang.DRL5Expressions; import org.drools.drl.parser.lang.DRL5Lexer; import org.drools.drl.parser.lang.DRL5Parser; @@ -113,6 +114,8 @@ public class DRLFactory { case DRL6: case DRL6_STRICT: return new DRL6Lexer(input); + case DRL10: + return new DRL10Lexer(); } throw new RuntimeException("Unknown language level"); } diff --git a/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/DrlExprParser.java b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/Drl6ExprParser.java similarity index 96% copy from drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/DrlExprParser.java copy to drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/Drl6ExprParser.java index 60c61ac248..9fb0186afb 100644 --- a/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/DrlExprParser.java +++ b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/Drl6ExprParser.java @@ -25,24 +25,24 @@ import org.antlr.runtime.ANTLRStringStream; import org.antlr.runtime.CommonTokenStream; import org.antlr.runtime.RecognitionException; import org.antlr.runtime.RecognizerSharedState; +import org.drools.drl.ast.descr.BaseDescr; +import org.drools.drl.ast.descr.ConstraintConnectiveDescr; import org.drools.drl.parser.lang.DRLExpressions; import org.drools.drl.parser.lang.DRLLexer; import org.drools.drl.parser.lang.ParserHelper; -import org.drools.drl.ast.descr.BaseDescr; -import org.drools.drl.ast.descr.ConstraintConnectiveDescr; import org.kie.internal.builder.conf.LanguageLevelOption; /** * This is a helper class that provides helper methods to parse expressions * using both the DRLExpressions parser and the DRLExprTree parser. */ -public class DrlExprParser { +public class Drl6ExprParser implements DrlExprParser { private ParserHelper helper = null; private final LanguageLevelOption languageLevel; - public DrlExprParser(LanguageLevelOption languageLevel) { + public Drl6ExprParser(LanguageLevelOption languageLevel) { this.languageLevel = languageLevel; } diff --git a/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/DrlExprParser.java b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/DrlExprParser.java index 60c61ac248..0702a1d146 100644 --- a/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/DrlExprParser.java +++ b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/DrlExprParser.java @@ -18,73 +18,29 @@ */ package org.drools.drl.parser; -import java.util.Collections; import java.util.List; -import org.antlr.runtime.ANTLRStringStream; -import org.antlr.runtime.CommonTokenStream; -import org.antlr.runtime.RecognitionException; -import org.antlr.runtime.RecognizerSharedState; -import org.drools.drl.parser.lang.DRLExpressions; -import org.drools.drl.parser.lang.DRLLexer; -import org.drools.drl.parser.lang.ParserHelper; -import org.drools.drl.ast.descr.BaseDescr; import org.drools.drl.ast.descr.ConstraintConnectiveDescr; -import org.kie.internal.builder.conf.LanguageLevelOption; /** * This is a helper class that provides helper methods to parse expressions * using both the DRLExpressions parser and the DRLExprTree parser. */ -public class DrlExprParser { - - private ParserHelper helper = null; - - private final LanguageLevelOption languageLevel; - - public DrlExprParser(LanguageLevelOption languageLevel) { - this.languageLevel = languageLevel; - } +public interface DrlExprParser { /** Parse an expression from text */ - public ConstraintConnectiveDescr parse( final String text ) { - ConstraintConnectiveDescr constraint = null; - try { - DRLLexer lexer = DRLFactory.getDRLLexer(new ANTLRStringStream(text), languageLevel); - CommonTokenStream input = new CommonTokenStream( lexer ); - RecognizerSharedState state = new RecognizerSharedState(); - helper = new ParserHelper( input, state, languageLevel ); - DRLExpressions parser = DRLFactory.getDRLExpressions(input, state, helper, languageLevel); - parser.setBuildDescr( true ); - parser.setLeftMostExpr( null ); // setting initial value just in case - BaseDescr expr = parser.conditionalOrExpression(); - if ( expr != null && !parser.hasErrors() ) { - constraint = ConstraintConnectiveDescr.newAnd(); - constraint.addOrMerge( expr ); - } - } catch ( RecognitionException e ) { - helper.reportError( e ); - } - return constraint; - } - - public String getLeftMostExpr() { - return helper != null ? helper.getLeftMostExpr() : null; - } + ConstraintConnectiveDescr parse( final String text ); + + String getLeftMostExpr(); /** * @return true if there were parser errors. */ - public boolean hasErrors() { - return helper != null && helper.hasErrors(); - } + boolean hasErrors(); /** * @return a list of errors found while parsing. */ @SuppressWarnings("unchecked") - public List<DroolsParserException> getErrors() { - return helper != null ? helper.getErrors() : Collections.EMPTY_LIST; - } - + List<DroolsParserException> getErrors(); } diff --git a/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/DrlExprParserFactory.java b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/DrlExprParserFactory.java new file mode 100644 index 0000000000..9ee116faf3 --- /dev/null +++ b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/DrlExprParserFactory.java @@ -0,0 +1,20 @@ +package org.drools.drl.parser; + +import org.drools.drl10.parser.Drl10ExprParser; +import org.kie.internal.builder.conf.LanguageLevelOption; + +public class DrlExprParserFactory { + + public static DrlExprParser getDrlExrParser(LanguageLevelOption languageLevel) { + switch (languageLevel) { + case DRL5: + case DRL6: + case DRL6_STRICT: + return new Drl6ExprParser(languageLevel); + case DRL10: + return new Drl10ExprParser(languageLevel); + default: + throw new RuntimeException("Unsupported language level: " + languageLevel); + } + } +} diff --git a/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/DrlParser.java b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/DrlParser.java index 7b852c8dce..d6ee0c042b 100644 --- a/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/DrlParser.java +++ b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/DrlParser.java @@ -18,6 +18,8 @@ */ package org.drools.drl.parser; +import org.drools.drl10.parser.DRLParserError; +import org.drools.drl10.parser.DRLParserWrapper; import org.drools.io.InternalResource; import org.drools.drl.ast.descr.PackageDescr; import org.drools.drl.parser.lang.DRLLexer; @@ -164,10 +166,35 @@ public class DrlParser { final InputStream is) throws DroolsParserException, IOException { this.resource = resource; String encoding = resource instanceof InternalResource ? ((InternalResource) resource).getEncoding() : null; - - lexer = DRLFactory.buildLexer(is, encoding, languageLevel); - DRLParser parser = DRLFactory.buildParser(lexer, languageLevel); - return compile(isEditor, parser); + System.out.println("### parse : languageLevel = " + languageLevel); + if (languageLevel == LanguageLevelOption.DRL10) { + // new parser based on antlr4 + try { + DRLParserWrapper parser = new DRLParserWrapper(); + PackageDescr packageDescr = parser.parse(is); + for (final DRLParserError drlParserError : parser.getErrors()) { + final ParserError err = new ParserError(resource, + drlParserError.getMessage(), + drlParserError.getLineNumber(), + drlParserError.getColumn()); + this.results.add(err); + } + return !this.hasErrors() ? packageDescr : null; + } catch (Exception e) { + LOG.error("Exception", e); + final ParserError err = new ParserError(resource, + GENERIC_ERROR_MESSAGE + e.toString() + "\n" + Arrays.toString(e.getStackTrace()), + -1, + 0); + this.results.add(err); + throw new DroolsParserException(GENERIC_ERROR_MESSAGE + e.getMessage(), e); + } + } else { + // old parsers based on antlr3 + lexer = DRLFactory.buildLexer(is, encoding, languageLevel); + DRLParser parser = DRLFactory.buildParser(lexer, languageLevel); + return compile(isEditor, parser); + } } /** diff --git a/kie-internal/src/main/java/org/kie/internal/builder/conf/LanguageLevelOption.java b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/lang/DRL10Lexer.java similarity index 50% copy from kie-internal/src/main/java/org/kie/internal/builder/conf/LanguageLevelOption.java copy to drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/lang/DRL10Lexer.java index ca8b96ee91..ae8d3d6d4d 100644 --- a/kie-internal/src/main/java/org/kie/internal/builder/conf/LanguageLevelOption.java +++ b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/lang/DRL10Lexer.java @@ -16,39 +16,31 @@ * specific language governing permissions and limitations * under the License. */ -package org.kie.internal.builder.conf; +package org.drools.drl.parser.lang; -import org.kie.api.conf.OptionKey; +import java.util.List; + +import org.antlr.runtime.Token; +import org.drools.drl.parser.DroolsParserException; /** - * A class for the language level configuration. + * No implementation because everything is handled by DRL10Parser */ -public enum LanguageLevelOption implements SingleValueRuleBuilderOption { - - DRL5(false), DRL6(false), DRL6_STRICT(true); - - private final boolean useJavaAnnotations; - - /** - * The property name for the language level - */ - public static final String PROPERTY_NAME = "drools.lang.level"; - - public static OptionKey<LanguageLevelOption> KEY = new OptionKey<>(TYPE, PROPERTY_NAME); +public class DRL10Lexer implements DRLLexer { - LanguageLevelOption(boolean useJavaAnnotations) { - this.useJavaAnnotations = useJavaAnnotations; + @Override + public String getSourceName() { + return null; } - public boolean useJavaAnnotations() { - return useJavaAnnotations; + @Override + public Token nextToken() { + return null; } - /** - * {@inheritDoc} - */ - public String getPropertyName() { - return PROPERTY_NAME; + @Override + public List<DroolsParserException> getErrors() { + return null; } -} +} \ No newline at end of file diff --git a/kie-internal/src/main/java/org/kie/internal/builder/conf/LanguageLevelOption.java b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/DRLErrorListener.java similarity index 50% copy from kie-internal/src/main/java/org/kie/internal/builder/conf/LanguageLevelOption.java copy to drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/DRLErrorListener.java index ca8b96ee91..0e5b5985b6 100644 --- a/kie-internal/src/main/java/org/kie/internal/builder/conf/LanguageLevelOption.java +++ b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/DRLErrorListener.java @@ -16,39 +16,34 @@ * specific language governing permissions and limitations * under the License. */ -package org.kie.internal.builder.conf; +package org.drools.drl10.parser; -import org.kie.api.conf.OptionKey; +import java.util.ArrayList; +import java.util.List; + +import org.antlr.v4.runtime.BaseErrorListener; +import org.antlr.v4.runtime.RecognitionException; +import org.antlr.v4.runtime.Recognizer; /** - * A class for the language level configuration. + * Collect errors while parsing DRL */ -public enum LanguageLevelOption implements SingleValueRuleBuilderOption { - - DRL5(false), DRL6(false), DRL6_STRICT(true); - - private final boolean useJavaAnnotations; +public class DRLErrorListener extends BaseErrorListener { - /** - * The property name for the language level - */ - public static final String PROPERTY_NAME = "drools.lang.level"; + private final List<DRLParserError> errors = new ArrayList<>(); - public static OptionKey<LanguageLevelOption> KEY = new OptionKey<>(TYPE, PROPERTY_NAME); - - LanguageLevelOption(boolean useJavaAnnotations) { - this.useJavaAnnotations = useJavaAnnotations; + public List<DRLParserError> getErrors() { + return errors; } - public boolean useJavaAnnotations() { - return useJavaAnnotations; - } + @Override + public void syntaxError(Recognizer<?, ?> recognizer, + Object offendingSymbol, + int line, + int charPositionInLine, + String msg, + RecognitionException e) { - /** - * {@inheritDoc} - */ - public String getPropertyName() { - return PROPERTY_NAME; + errors.add(new DRLParserError(line, charPositionInLine, msg)); } - } diff --git a/drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/DRLExpressions.java b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/DRLExpressions.java similarity index 98% rename from drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/DRLExpressions.java rename to drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/DRLExpressions.java index 0109e23377..e7aa8102c4 100644 --- a/drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/DRLExpressions.java +++ b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/DRLExpressions.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.drools.parser; +package org.drools.drl10.parser; import java.util.LinkedList; import java.util.List; diff --git a/drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/DRLParserError.java b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/DRLParserError.java similarity index 58% rename from drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/DRLParserError.java rename to drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/DRLParserError.java index ec3e41747d..4b893e11e4 100644 --- a/drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/DRLParserError.java +++ b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/DRLParserError.java @@ -1,4 +1,22 @@ -package org.drools.parser; +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.drools.drl10.parser; /** * Error information while parsing DRL diff --git a/drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/DRLParserException.java b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/DRLParserException.java new file mode 100644 index 0000000000..833d1aa8df --- /dev/null +++ b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/DRLParserException.java @@ -0,0 +1,30 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.drools.drl10.parser; + +public class DRLParserException extends RuntimeException { + + public DRLParserException() { + super(); + } + + public DRLParserException(String message) { + super(message); + } +} diff --git a/drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/DRLParserHelper.java b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/DRLParserHelper.java similarity index 82% rename from drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/DRLParserHelper.java rename to drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/DRLParserHelper.java index bd95c3033c..f4436bf44b 100644 --- a/drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/DRLParserHelper.java +++ b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/DRLParserHelper.java @@ -1,4 +1,22 @@ -package org.drools.parser; +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.drools.drl10.parser; import java.io.IOException; import java.io.InputStream; diff --git a/drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/DRLParserWrapper.java b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/DRLParserWrapper.java similarity index 66% rename from drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/DRLParserWrapper.java rename to drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/DRLParserWrapper.java index 88ae36c12f..914255e137 100644 --- a/drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/DRLParserWrapper.java +++ b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/DRLParserWrapper.java @@ -1,4 +1,22 @@ -package org.drools.parser; +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.drools.drl10.parser; import java.io.InputStream; import java.util.ArrayList; @@ -9,7 +27,7 @@ import org.drools.drl.ast.descr.PackageDescr; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import static org.drools.parser.DRLParserHelper.compilationUnitContext2PackageDescr; +import static org.drools.drl10.parser.DRLParserHelper.compilationUnitContext2PackageDescr; /** * Wrapper for DRLParser. Somewhat duplicated from DRLParserHelper, but this class is instantiated and holds errors. diff --git a/drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/DRLVisitorImpl.java b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/DRLVisitorImpl.java similarity index 96% rename from drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/DRLVisitorImpl.java rename to drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/DRLVisitorImpl.java index 3f920cc13a..a977fee988 100644 --- a/drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/DRLVisitorImpl.java +++ b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/DRLVisitorImpl.java @@ -1,8 +1,25 @@ -package org.drools.parser; +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.drools.drl10.parser; import java.util.ArrayList; import java.util.List; -import java.util.Optional; import java.util.stream.Collectors; import org.antlr.v4.runtime.ParserRuleContext; @@ -41,11 +58,11 @@ import org.drools.drl.ast.descr.TypeFieldDescr; import org.drools.drl.ast.descr.UnitDescr; import org.drools.drl.ast.descr.WindowDeclarationDescr; -import static org.drools.parser.DRLParserHelper.getTextWithoutErrorNode; -import static org.drools.parser.ParserStringUtils.getTextPreservingWhitespace; -import static org.drools.parser.ParserStringUtils.getTokenTextPreservingWhitespace; -import static org.drools.parser.ParserStringUtils.safeStripStringDelimiters; -import static org.drools.parser.ParserStringUtils.trimThen; +import static org.drools.drl10.parser.DRLParserHelper.getTextWithoutErrorNode; +import static org.drools.drl10.parser.ParserStringUtils.getTextPreservingWhitespace; +import static org.drools.drl10.parser.ParserStringUtils.getTokenTextPreservingWhitespace; +import static org.drools.drl10.parser.ParserStringUtils.safeStripStringDelimiters; +import static org.drools.drl10.parser.ParserStringUtils.trimThen; import static org.drools.util.StringUtils.unescapeJava; /** diff --git a/drools-drl/drools-drl10-parser/Developer_Notes.md b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/Developer_Notes.md similarity index 100% rename from drools-drl/drools-drl10-parser/Developer_Notes.md rename to drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/Developer_Notes.md diff --git a/drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/DrlExprParser.java b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/Drl10ExprParser.java similarity index 93% rename from drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/DrlExprParser.java rename to drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/Drl10ExprParser.java index d9c8d93bce..19ec473536 100644 --- a/drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/DrlExprParser.java +++ b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/Drl10ExprParser.java @@ -16,16 +16,17 @@ * specific language governing permissions and limitations * under the License. */ -package org.drools.parser; +package org.drools.drl10.parser; import java.util.Collections; import java.util.List; -import org.antlr.v4.runtime.RecognitionException; import org.antlr.v4.runtime.CharStreams; import org.antlr.v4.runtime.CommonTokenStream; +import org.antlr.v4.runtime.RecognitionException; import org.drools.drl.ast.descr.BaseDescr; import org.drools.drl.ast.descr.ConstraintConnectiveDescr; +import org.drools.drl.parser.DrlExprParser; import org.drools.drl.parser.DroolsParserException; import org.kie.internal.builder.conf.LanguageLevelOption; @@ -33,13 +34,13 @@ import org.kie.internal.builder.conf.LanguageLevelOption; * This is a helper class that provides helper methods to parse expressions * using both the DRLExpressions parser and the DRLExprTree parser. */ -public class DrlExprParser { +public class Drl10ExprParser implements DrlExprParser { private ParserHelper helper = null; private final LanguageLevelOption languageLevel; - public DrlExprParser(LanguageLevelOption languageLevel) { + public Drl10ExprParser(LanguageLevelOption languageLevel) { this.languageLevel = languageLevel; } diff --git a/drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/DroolsParserExceptionFactory.java b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/DroolsParserExceptionFactory.java similarity index 99% rename from drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/DroolsParserExceptionFactory.java rename to drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/DroolsParserExceptionFactory.java index e184dfe9e3..abf586c55d 100644 --- a/drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/DroolsParserExceptionFactory.java +++ b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/DroolsParserExceptionFactory.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.drools.parser; +package org.drools.drl10.parser; import java.io.PrintWriter; import java.io.StringWriter; diff --git a/drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/ParserHelper.java b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/ParserHelper.java similarity index 99% rename from drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/ParserHelper.java rename to drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/ParserHelper.java index 66d6bea4d6..f729115b7c 100644 --- a/drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/ParserHelper.java +++ b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/ParserHelper.java @@ -29,7 +29,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.drools.parser; +package org.drools.drl10.parser; import java.util.ArrayDeque; import java.util.ArrayList; @@ -39,8 +39,8 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; -import org.antlr.v4.runtime.CommonToken; import org.antlr.runtime.RecognizerSharedState; +import org.antlr.v4.runtime.CommonToken; import org.antlr.v4.runtime.RecognitionException; import org.antlr.v4.runtime.Token; import org.antlr.v4.runtime.TokenStream; diff --git a/drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/ParserStringUtils.java b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/ParserStringUtils.java similarity index 70% rename from drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/ParserStringUtils.java rename to drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/ParserStringUtils.java index a294bf2a92..ef22da2dce 100644 --- a/drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/ParserStringUtils.java +++ b/drools-drl/drools-drl-parser/src/main/java/org/drools/drl10/parser/ParserStringUtils.java @@ -1,4 +1,22 @@ -package org.drools.parser; +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.drools.drl10.parser; import org.antlr.v4.runtime.ParserRuleContext; import org.antlr.v4.runtime.TokenStream; diff --git a/drools-drl/drools-drl10-parser/.gitignore b/drools-drl/drools-drl10-parser/.gitignore deleted file mode 100644 index 6fc57b48ec..0000000000 --- a/drools-drl/drools-drl10-parser/.gitignore +++ /dev/null @@ -1,18 +0,0 @@ -target/ -gen/ -local/ - -# Eclipse, Netbeans and IntelliJ files -.* -!.gitignore -!.github -nbproject -*.ipr -*.iws -*.iml - -# generated files -dependency-reduced-pom.xml - -#CI -!.ci diff --git a/drools-drl/drools-drl10-parser/pom.xml b/drools-drl/drools-drl10-parser/pom.xml deleted file mode 100644 index 57ed8f85ca..0000000000 --- a/drools-drl/drools-drl10-parser/pom.xml +++ /dev/null @@ -1,115 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - - <modelVersion>4.0.0</modelVersion> - - <parent> - <groupId>org.drools</groupId> - <artifactId>drools-lsp</artifactId> - <version>1.0.0-SNAPSHOT</version> - </parent> - - <artifactId>drools-parser</artifactId> - - <name>Drools :: Parser</name> - - <dependencies> - <dependency> - <groupId>org.drools</groupId> - <artifactId>drools-drl-ast</artifactId> - <version>${version.org.drools}</version> - </dependency> - <dependency> - <groupId>org.drools</groupId> - <artifactId>drools-util</artifactId> - <version>${version.org.drools}</version> - </dependency> - <dependency> - <groupId>org.drools</groupId> - <artifactId>drools-drl-parser</artifactId> - <version>${version.org.drools}</version> - </dependency> - - <!-- External dependencies --> - <dependency> - <groupId>org.antlr</groupId> - <artifactId>antlr4-runtime</artifactId> - <version>${version.org.antlr4}</version> - </dependency> - <dependency> - <groupId>org.antlr</groupId> - <artifactId>antlr4</artifactId> - <version>${version.org.antlr4}</version> - <scope>test</scope> - <exclusions> - <exclusion> - <groupId>org.glassfish</groupId> - <artifactId>javax.json</artifactId> - </exclusion> - </exclusions> - </dependency> - - <!-- Tests --> - <dependency> - <groupId>org.assertj</groupId> - <artifactId>assertj-core</artifactId> - <version>${version.org.assertj}</version> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.junit.jupiter</groupId> - <artifactId>junit-jupiter-api</artifactId> - <version>${version.org.junit}</version> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.junit.jupiter</groupId> - <artifactId>junit-jupiter-engine</artifactId> - <version>${version.org.junit}</version> - <scope>test</scope> - </dependency> - <dependency> - <groupId>ch.qos.logback</groupId> - <artifactId>logback-classic</artifactId> - <version>${version.ch.qos.logback}</version> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.drools</groupId> - <artifactId>drools-compiler</artifactId> - <version>${version.org.drools}</version> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.drools</groupId> - <artifactId>drools-mvel</artifactId> - <version>${version.org.drools}</version> - <scope>test</scope> - </dependency> - </dependencies> - - <build> - <plugins> - <plugin> - <groupId>org.antlr</groupId> - <artifactId>antlr4-maven-plugin</artifactId> - <version>${version.org.antlr4}</version> - <executions> - <execution> - <goals> - <goal>antlr4</goal> - </goals> - <configuration> - <visitor>true</visitor> - <listener>false</listener> - <libDirectory>src/main/antlr4/org/drools/parser/</libDirectory> - </configuration> - </execution> - </executions> - </plugin> - - </plugins> - </build> - -</project> diff --git a/drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/DRLErrorListener.java b/drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/DRLErrorListener.java deleted file mode 100644 index f7c6504df4..0000000000 --- a/drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/DRLErrorListener.java +++ /dev/null @@ -1,31 +0,0 @@ -package org.drools.parser; - -import java.util.ArrayList; -import java.util.List; - -import org.antlr.v4.runtime.BaseErrorListener; -import org.antlr.v4.runtime.RecognitionException; -import org.antlr.v4.runtime.Recognizer; - -/** - * Collect errors while parsing DRL - */ -public class DRLErrorListener extends BaseErrorListener { - - private final List<DRLParserError> errors = new ArrayList<>(); - - public List<DRLParserError> getErrors() { - return errors; - } - - @Override - public void syntaxError(Recognizer<?, ?> recognizer, - Object offendingSymbol, - int line, - int charPositionInLine, - String msg, - RecognitionException e) { - - errors.add(new DRLParserError(line, charPositionInLine, msg)); - } -} diff --git a/drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/DRLParserException.java b/drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/DRLParserException.java deleted file mode 100644 index 6bc5812a78..0000000000 --- a/drools-drl/drools-drl10-parser/src/main/java/org/drools/parser/DRLParserException.java +++ /dev/null @@ -1,12 +0,0 @@ -package org.drools.parser; - -public class DRLParserException extends RuntimeException { - - public DRLParserException() { - super(); - } - - public DRLParserException(String message) { - super(message); - } -} diff --git a/drools-drl/pom.xml b/drools-drl/pom.xml index 91f12f3d75..2fb61bb300 100644 --- a/drools-drl/pom.xml +++ b/drools-drl/pom.xml @@ -39,6 +39,7 @@ <module>drools-drl-ast</module> <module>drools-drl-extensions</module> <module>drools-drl-parser</module> + <module>drools-drl-parser-tests</module> </modules> diff --git a/drools-test-coverage/test-compiler-integration/pom.xml b/drools-test-coverage/test-compiler-integration/pom.xml index 6ccf1cbdc6..93df94a6d5 100644 --- a/drools-test-coverage/test-compiler-integration/pom.xml +++ b/drools-test-coverage/test-compiler-integration/pom.xml @@ -178,6 +178,27 @@ <excludedGroups/> </properties> </profile> +<!-- <profile>--> +<!-- <id>DRL10</id>--> +<!-- <activation>--> +<!-- <property>--> +<!-- <name>DRL10</name>--> +<!-- </property>--> +<!-- </activation>--> +<!-- <build>--> +<!-- <plugins>--> +<!-- <plugin>--> +<!-- <groupId>org.apache.maven.plugins</groupId>--> +<!-- <artifactId>maven-surefire-plugin</artifactId>--> +<!-- <configuration>--> +<!-- <systemPropertyVariables>--> +<!-- <drools.lang.level>DRL10</drools.lang.level>--> +<!-- </systemPropertyVariables>--> +<!-- </configuration>--> +<!-- </plugin>--> +<!-- </plugins>--> +<!-- </build>--> +<!-- </profile>--> </profiles> </project> diff --git a/drools-test-coverage/test-compiler-integration/src/test/java/org/drools/mvel/compiler/lang/DRLExprParserTest.java b/drools-test-coverage/test-compiler-integration/src/test/java/org/drools/mvel/compiler/lang/DRLExprParserTest.java index 08eeb33eda..c7357aad4d 100644 --- a/drools-test-coverage/test-compiler-integration/src/test/java/org/drools/mvel/compiler/lang/DRLExprParserTest.java +++ b/drools-test-coverage/test-compiler-integration/src/test/java/org/drools/mvel/compiler/lang/DRLExprParserTest.java @@ -25,6 +25,7 @@ import org.drools.drl.ast.descr.ConnectiveType; import org.drools.drl.ast.descr.ConstraintConnectiveDescr; import org.drools.drl.ast.descr.RelationalExprDescr; import org.drools.drl.parser.DrlExprParser; +import org.drools.drl.parser.DrlExprParserFactory; import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -42,7 +43,7 @@ public class DRLExprParserTest { @Before public void setUp() throws Exception { new EvaluatorRegistry(); - this.parser = new DrlExprParser(LanguageLevelOption.DRL6); + this.parser = DrlExprParserFactory.getDrlExrParser(LanguageLevelOption.DRL6); } @After diff --git a/drools-test-coverage/test-compiler-integration/src/test/java/org/drools/mvel/compiler/lang/DescrDumperTest.java b/drools-test-coverage/test-compiler-integration/src/test/java/org/drools/mvel/compiler/lang/DescrDumperTest.java index 649b43c37f..5eb52e6283 100644 --- a/drools-test-coverage/test-compiler-integration/src/test/java/org/drools/mvel/compiler/lang/DescrDumperTest.java +++ b/drools-test-coverage/test-compiler-integration/src/test/java/org/drools/mvel/compiler/lang/DescrDumperTest.java @@ -24,6 +24,7 @@ import org.drools.compiler.lang.DumperContext; import org.drools.drl.ast.descr.AtomicExprDescr; import org.drools.drl.ast.descr.BindingDescr; import org.drools.drl.ast.descr.ConstraintConnectiveDescr; +import org.drools.drl.parser.DrlExprParserFactory; import org.drools.mvel.evaluators.MatchesEvaluatorsDefinition; import org.drools.mvel.evaluators.SetEvaluatorsDefinition; import org.junit.Before; @@ -358,7 +359,7 @@ public class DescrDumperTest { } public ConstraintConnectiveDescr parse( final String constraint ) { - DrlExprParser parser = new DrlExprParser(LanguageLevelOption.DRL6); + DrlExprParser parser = DrlExprParserFactory.getDrlExrParser(LanguageLevelOption.DRL6); ConstraintConnectiveDescr result = parser.parse( constraint ); assertThat(parser.hasErrors()).as(parser.getErrors().toString()).isFalse(); diff --git a/drools-test-coverage/test-compiler-integration/src/test/java/org/drools/mvel/integrationtests/AlphaNodeTest.java b/drools-test-coverage/test-compiler-integration/src/test/java/org/drools/mvel/integrationtests/AlphaNodeTest.java index d4089c3460..71642c1728 100644 --- a/drools-test-coverage/test-compiler-integration/src/test/java/org/drools/mvel/integrationtests/AlphaNodeTest.java +++ b/drools-test-coverage/test-compiler-integration/src/test/java/org/drools/mvel/integrationtests/AlphaNodeTest.java @@ -48,6 +48,8 @@ public class AlphaNodeTest { @Test public void testAlpha() { + + String str = "import " + Person.class.getCanonicalName() + "\n" + "rule R1 when\n" + @@ -195,7 +197,7 @@ public class AlphaNodeTest { " $p : Person(name == \"Mario\")\n" + " $s : String(this == $p.name)\n" + "then\n" + - " modify($p) { setName(\"Mark\") }" + + " modify($p) { setName(\"Mark\") }\n" + "end\n" + "rule R2 when\n" + " $p : Person(name == \"Mark\")\n" + diff --git a/drools-verifier/drools-verifier-drl/src/main/java/org/drools/verifier/visitor/ExprConstraintDescrVisitor.java b/drools-verifier/drools-verifier-drl/src/main/java/org/drools/verifier/visitor/ExprConstraintDescrVisitor.java index ba67c653c3..6e6ef96a82 100644 --- a/drools-verifier/drools-verifier-drl/src/main/java/org/drools/verifier/visitor/ExprConstraintDescrVisitor.java +++ b/drools-verifier/drools-verifier-drl/src/main/java/org/drools/verifier/visitor/ExprConstraintDescrVisitor.java @@ -20,6 +20,7 @@ package org.drools.verifier.visitor; import java.util.List; +import org.drools.drl.parser.DrlExprParserFactory; import org.drools.drl.parser.impl.Operator; import org.drools.drl.parser.DrlExprParser; import org.drools.drl.ast.descr.AtomicExprDescr; @@ -57,7 +58,7 @@ public class ExprConstraintDescrVisitor { public void visit(ExprConstraintDescr descr) { - DrlExprParser drlExprParser = new DrlExprParser(LanguageLevelOption.DRL5); + DrlExprParser drlExprParser = DrlExprParserFactory.getDrlExrParser(LanguageLevelOption.DRL5); ConstraintConnectiveDescr constraintConnectiveDescr = drlExprParser.parse(descr.getExpression()); visit(constraintConnectiveDescr.getDescrs()); diff --git a/kie-internal/src/main/java/org/kie/internal/builder/conf/LanguageLevelOption.java b/kie-internal/src/main/java/org/kie/internal/builder/conf/LanguageLevelOption.java index ca8b96ee91..86266a0f2d 100644 --- a/kie-internal/src/main/java/org/kie/internal/builder/conf/LanguageLevelOption.java +++ b/kie-internal/src/main/java/org/kie/internal/builder/conf/LanguageLevelOption.java @@ -25,7 +25,7 @@ import org.kie.api.conf.OptionKey; */ public enum LanguageLevelOption implements SingleValueRuleBuilderOption { - DRL5(false), DRL6(false), DRL6_STRICT(true); + DRL5(false), DRL6(false), DRL6_STRICT(true), DRL10(false); private final boolean useJavaAnnotations; diff --git a/pom.xml b/pom.xml index 581c84bf95..4766589618 100644 --- a/pom.xml +++ b/pom.xml @@ -260,6 +260,28 @@ </plugins> </build> </profile> + + <profile> + <id>DRL10</id> + <activation> + <property> + <name>DRL10</name> + </property> + </activation> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <configuration> + <systemPropertyVariables> + <drools.lang.level>DRL10</drools.lang.level> + </systemPropertyVariables> + </configuration> + </plugin> + </plugins> + </build> + </profile> </profiles> </project> --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
