You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by em...@apache.org on 2020/01/20 12:41:38 UTC

[groovy] branch parser-config created (now 5dd3c4c)

This is an automated email from the ASF dual-hosted git repository.

emilles pushed a change to branch parser-config
in repository https://gitbox.apache.org/repos/asf/groovy.git.


      at 5dd3c4c  remove need for compiler config from parser creation

This branch includes the following new commits:

     new 5dd3c4c  remove need for compiler config from parser creation

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[groovy] 01/01: remove need for compiler config from parser creation

Posted by em...@apache.org.
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 <er...@thomsonreuters.com>
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])
 }