This is an automated email from the ASF dual-hosted git repository. emilles pushed a commit to branch parser-config in repository https://gitbox.apache.org/repos/asf/groovy.git
commit 5dd3c4c690339871383af79bd3e51e68ed3138b8 Author: Eric Milles <[email protected]> AuthorDate: Mon Jan 20 06:38:50 2020 -0600 remove need for compiler config from parser creation --- .../groovy/control/CompilerConfiguration.java | 2 +- .../codehaus/groovy/control/ParserPluginFactory.java | 14 ++++++++------ .../groovy/control/CompilerConfigurationTest.java | 2 +- .../java/org/apache/groovy/parser/Antlr4Parser.java | 3 ++- .../groovy/parser/antlr4/Antlr4ParserPlugin.java | 19 ++++--------------- .../groovy/parser/antlr4/Antlr4PluginFactory.java | 14 +------------- .../org/apache/groovy/parser/antlr4/AstBuilder.java | 6 ------ .../org/apache/groovy/parser/antlr4/TestUtils.groovy | 15 ++++++--------- 8 files changed, 23 insertions(+), 52 deletions(-) diff --git a/src/main/java/org/codehaus/groovy/control/CompilerConfiguration.java b/src/main/java/org/codehaus/groovy/control/CompilerConfiguration.java index 39dd3f5..6c02a03 100644 --- a/src/main/java/org/codehaus/groovy/control/CompilerConfiguration.java +++ b/src/main/java/org/codehaus/groovy/control/CompilerConfiguration.java @@ -879,7 +879,7 @@ public class CompilerConfiguration { public ParserPluginFactory getPluginFactory() { if (pluginFactory == null) { - pluginFactory = ParserPluginFactory.antlr4(this); + pluginFactory = ParserPluginFactory.antlr4(); } return pluginFactory; } diff --git a/src/main/java/org/codehaus/groovy/control/ParserPluginFactory.java b/src/main/java/org/codehaus/groovy/control/ParserPluginFactory.java index e874011..a4c6ccd 100644 --- a/src/main/java/org/codehaus/groovy/control/ParserPluginFactory.java +++ b/src/main/java/org/codehaus/groovy/control/ParserPluginFactory.java @@ -19,29 +19,31 @@ package org.codehaus.groovy.control; import org.apache.groovy.parser.antlr4.Antlr4PluginFactory; +import org.codehaus.groovy.antlr.AntlrParserPluginFactory; /** * A factory of parser plugin instances. */ public abstract class ParserPluginFactory { + + public abstract ParserPlugin createParserPlugin(); + /** * Creates the ANTLR 4 parser. * * @return the factory for the parser */ - public static ParserPluginFactory antlr4(final CompilerConfiguration compilerConfiguration) { - return new Antlr4PluginFactory(compilerConfiguration); + public static ParserPluginFactory antlr4() { + return new Antlr4PluginFactory(); } /** * Creates the ANTLR 2 parser. * - * @throws UnsupportedOperationException always + * @return the factory for the parser */ @Deprecated public static ParserPluginFactory antlr2() { - throw new UnsupportedOperationException("The Antlr2-based parser is no longer supported"); + return new AntlrParserPluginFactory(); } - - public abstract ParserPlugin createParserPlugin(); } diff --git a/src/test/org/codehaus/groovy/control/CompilerConfigurationTest.java b/src/test/org/codehaus/groovy/control/CompilerConfigurationTest.java index bcea2a1..14e8671 100644 --- a/src/test/org/codehaus/groovy/control/CompilerConfigurationTest.java +++ b/src/test/org/codehaus/groovy/control/CompilerConfigurationTest.java @@ -113,7 +113,7 @@ public final class CompilerConfigurationTest { init.setTargetDirectory(tergetDirectory); init.setDefaultScriptExtension(".jpp"); init.setJointCompilationOptions(Collections.singletonMap("somekey", "somevalue")); - ParserPluginFactory pluginFactory = ParserPluginFactory.antlr4(init); + ParserPluginFactory pluginFactory = ParserPluginFactory.antlr4(); init.setPluginFactory(pluginFactory); assertEquals(WarningMessage.POSSIBLE_ERRORS, init.getWarningLevel()); diff --git a/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/Antlr4Parser.java b/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/Antlr4Parser.java index 7cb14fb..a9d380c 100644 --- a/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/Antlr4Parser.java +++ b/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/Antlr4Parser.java @@ -25,6 +25,7 @@ import org.codehaus.groovy.control.CompilerConfiguration; * The Antlr4 parser for creating a module node. */ public class Antlr4Parser extends AbstractParser { + private final CompilerConfiguration compilerConfiguration; public Antlr4Parser() { @@ -33,7 +34,7 @@ public class Antlr4Parser extends AbstractParser { public Antlr4Parser(CompilerConfiguration compilerConfiguration) { this.compilerConfiguration = compilerConfiguration; - compilerConfiguration.setPluginFactory(new Antlr4PluginFactory(compilerConfiguration)); + compilerConfiguration.setPluginFactory(new Antlr4PluginFactory()); } @Override diff --git a/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/Antlr4ParserPlugin.java b/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/Antlr4ParserPlugin.java index e8eff46..819165e 100644 --- a/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/Antlr4ParserPlugin.java +++ b/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/Antlr4ParserPlugin.java @@ -20,7 +20,6 @@ package org.apache.groovy.parser.antlr4; import org.codehaus.groovy.GroovyBugError; import org.codehaus.groovy.ast.ModuleNode; -import org.codehaus.groovy.control.CompilerConfiguration; import org.codehaus.groovy.control.ParserPlugin; import org.codehaus.groovy.control.SourceUnit; import org.codehaus.groovy.control.io.StringReaderSource; @@ -29,24 +28,12 @@ import org.codehaus.groovy.syntax.Reduction; import java.io.IOException; import java.io.Reader; -import java.util.Optional; /** * A parser plugin for the new parser. */ public class Antlr4ParserPlugin implements ParserPlugin { - private final CompilerConfiguration compilerConfiguration; - - public Antlr4ParserPlugin() { - this.compilerConfiguration = null; - } - - @Deprecated - public Antlr4ParserPlugin(final CompilerConfiguration compilerConfiguration) { - this.compilerConfiguration = compilerConfiguration; - } - @Override public Reduction parseCST(final SourceUnit sourceUnit, final Reader reader) { if (!sourceUnit.getSource().canReopenSource()) { @@ -64,8 +51,10 @@ public class Antlr4ParserPlugin implements ParserPlugin { @Override public ModuleNode buildAST(final SourceUnit sourceUnit, final ClassLoader classLoader, final Reduction cst) { - CompilerConfiguration compilerConfiguration = Optional.ofNullable(this.compilerConfiguration).orElseGet(sourceUnit::getConfiguration); - AstBuilder builder = new AstBuilder(sourceUnit, compilerConfiguration.isGroovydocEnabled(), compilerConfiguration.isRuntimeGroovydocEnabled()); + AstBuilder builder = new AstBuilder(sourceUnit, + sourceUnit.getConfiguration().isGroovydocEnabled(), + sourceUnit.getConfiguration().isRuntimeGroovydocEnabled() + ); return builder.buildAST(); } } diff --git a/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/Antlr4PluginFactory.java b/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/Antlr4PluginFactory.java index ee433ca..48e166e 100644 --- a/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/Antlr4PluginFactory.java +++ b/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/Antlr4PluginFactory.java @@ -18,7 +18,6 @@ */ package org.apache.groovy.parser.antlr4; -import org.codehaus.groovy.control.CompilerConfiguration; import org.codehaus.groovy.control.ParserPlugin; import org.codehaus.groovy.control.ParserPluginFactory; @@ -27,19 +26,8 @@ import org.codehaus.groovy.control.ParserPluginFactory; */ public class Antlr4PluginFactory extends ParserPluginFactory { - private final CompilerConfiguration compilerConfiguration; - - public Antlr4PluginFactory() { - this.compilerConfiguration = null; - } - - @Deprecated - public Antlr4PluginFactory(final CompilerConfiguration compilerConfiguration) { - this.compilerConfiguration = compilerConfiguration; - } - @Override public ParserPlugin createParserPlugin() { - return new Antlr4ParserPlugin(compilerConfiguration); + return new Antlr4ParserPlugin(); } } diff --git a/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/AstBuilder.java b/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/AstBuilder.java index 99df11c..1d4a01b 100644 --- a/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/AstBuilder.java +++ b/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/AstBuilder.java @@ -281,7 +281,6 @@ import org.codehaus.groovy.ast.stmt.TryCatchStatement; import org.codehaus.groovy.ast.stmt.WhileStatement; import org.codehaus.groovy.control.CompilationFailedException; import org.codehaus.groovy.control.CompilePhase; -import org.codehaus.groovy.control.CompilerConfiguration; import org.codehaus.groovy.control.SourceUnit; import org.codehaus.groovy.control.messages.SyntaxErrorMessage; import org.codehaus.groovy.runtime.DefaultGroovyMethods; @@ -338,11 +337,6 @@ import static org.codehaus.groovy.runtime.DefaultGroovyMethods.last; */ public class AstBuilder extends GroovyParserBaseVisitor<Object> { - @Deprecated - public AstBuilder(final SourceUnit sourceUnit, final CompilerConfiguration compilerConfiguration) { - this(sourceUnit, compilerConfiguration.isGroovydocEnabled(), compilerConfiguration.isRuntimeGroovydocEnabled()); - } - public AstBuilder(final SourceUnit sourceUnit, final boolean groovydocEnabled, final boolean runtimeGroovydocEnabled) { this.sourceUnit = sourceUnit; this.moduleNode = new ModuleNode(sourceUnit); diff --git a/subprojects/parser-antlr4/src/test/groovy/org/apache/groovy/parser/antlr4/TestUtils.groovy b/subprojects/parser-antlr4/src/test/groovy/org/apache/groovy/parser/antlr4/TestUtils.groovy index 655080d..7a77b19 100644 --- a/subprojects/parser-antlr4/src/test/groovy/org/apache/groovy/parser/antlr4/TestUtils.groovy +++ b/subprojects/parser-antlr4/src/test/groovy/org/apache/groovy/parser/antlr4/TestUtils.groovy @@ -281,17 +281,14 @@ class TestUtils { } static GroovyShell createAntlr4Shell(CompilerConfiguration compilerConfiguration = new CompilerConfiguration(CompilerConfiguration.DEFAULT)) { - compilerConfiguration.pluginFactory = new Antlr4PluginFactory(compilerConfiguration) - - return new GroovyShell(compilerConfiguration); + compilerConfiguration.pluginFactory = new Antlr4PluginFactory() + return new GroovyShell(compilerConfiguration) } - static GroovyShell createAntlr2Shell() { - CompilerConfiguration configuration = new CompilerConfiguration(CompilerConfiguration.DEFAULT) - configuration.pluginFactory = new AntlrParserPluginFactory() - - return new GroovyShell(configuration); + static GroovyShell createAntlr2Shell(CompilerConfiguration compilerConfiguration = new CompilerConfiguration(CompilerConfiguration.DEFAULT)) { + compilerConfiguration.pluginFactory = new AntlrParserPluginFactory() + return new GroovyShell(compilerConfiguration) } - public static final List COMMON_IGNORE_CLASS_LIST = Collections.unmodifiableList([AssertStatement, BreakStatement, ConstructorNode, ContinueStatement, ExpressionStatement, FieldNode, ForStatement, GenericsType, IfStatement, MethodNode, PackageNode, Parameter, PropertyNode, ReturnStatement, ThrowStatement, Token, WhileStatement] as List); + public static final List COMMON_IGNORE_CLASS_LIST = Collections.unmodifiableList([AssertStatement, BreakStatement, ConstructorNode, ContinueStatement, ExpressionStatement, FieldNode, ForStatement, GenericsType, IfStatement, MethodNode, PackageNode, Parameter, PropertyNode, ReturnStatement, ThrowStatement, Token, WhileStatement]) }
