This is an automated email from the ASF dual-hosted git repository.
emilles pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/groovy.git
The following commit(s) were added to refs/heads/master by this push:
new 7703c7e move need for compiler configuration up in call graph
7703c7e is described below
commit 7703c7e58d6df0cc7bf101a54cd36f9198b100e0
Author: Eric Milles <[email protected]>
AuthorDate: Sun Jan 19 18:24:28 2020 -0600
move need for compiler configuration up in call graph
---
.../groovy/control/ParserPluginFactory.java | 2 +-
.../groovy/parser/antlr4/Antlr4ParserPlugin.java | 53 +++++++++-------------
.../groovy/parser/antlr4/Antlr4PluginFactory.java | 12 +++--
.../apache/groovy/parser/antlr4/AstBuilder.java | 11 +++--
.../groovy/parser/antlr4/GroovydocManager.java | 15 ++++--
5 files changed, 50 insertions(+), 43 deletions(-)
diff --git a/src/main/java/org/codehaus/groovy/control/ParserPluginFactory.java
b/src/main/java/org/codehaus/groovy/control/ParserPluginFactory.java
index ee09105..e874011 100644
--- a/src/main/java/org/codehaus/groovy/control/ParserPluginFactory.java
+++ b/src/main/java/org/codehaus/groovy/control/ParserPluginFactory.java
@@ -29,7 +29,7 @@ public abstract class ParserPluginFactory {
*
* @return the factory for the parser
*/
- public static ParserPluginFactory antlr4(CompilerConfiguration
compilerConfiguration) {
+ public static ParserPluginFactory antlr4(final CompilerConfiguration
compilerConfiguration) {
return new Antlr4PluginFactory(compilerConfiguration);
}
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 fa6b381..e8eff46 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,61 +20,52 @@ package org.apache.groovy.parser.antlr4;
import org.codehaus.groovy.GroovyBugError;
import org.codehaus.groovy.ast.ModuleNode;
-import org.codehaus.groovy.control.CompilationFailedException;
import org.codehaus.groovy.control.CompilerConfiguration;
import org.codehaus.groovy.control.ParserPlugin;
import org.codehaus.groovy.control.SourceUnit;
-import org.codehaus.groovy.control.io.ReaderSource;
import org.codehaus.groovy.control.io.StringReaderSource;
import org.codehaus.groovy.runtime.IOGroovyMethods;
-import org.codehaus.groovy.syntax.ParserException;
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
+ * A parser plugin for the new parser.
*/
public class Antlr4ParserPlugin implements ParserPlugin {
- private ReaderSource readerSource;
- private CompilerConfiguration compilerConfiguration;
- public Antlr4ParserPlugin(CompilerConfiguration compilerConfiguration) {
+ private final CompilerConfiguration compilerConfiguration;
+
+ public Antlr4ParserPlugin() {
+ this.compilerConfiguration = null;
+ }
+
+ @Deprecated
+ public Antlr4ParserPlugin(final CompilerConfiguration
compilerConfiguration) {
this.compilerConfiguration = compilerConfiguration;
}
@Override
- public Reduction parseCST(SourceUnit sourceUnit, java.io.Reader reader)
throws CompilationFailedException {
- ReaderSource readerSource = sourceUnit.getSource();
-
- try (Reader sourceReader = null != readerSource ?
readerSource.getReader() : null) {
- if (null != readerSource && null != sourceReader) {
- this.readerSource = readerSource;
- } else {
- this.readerSource = new
StringReaderSource(IOGroovyMethods.getText(reader),
sourceUnit.getConfiguration());
+ public Reduction parseCST(final SourceUnit sourceUnit, final Reader
reader) {
+ if (!sourceUnit.getSource().canReopenSource()) {
+ try {
+ sourceUnit.setSource(new StringReaderSource(
+ IOGroovyMethods.getText(reader),
+ sourceUnit.getConfiguration()
+ ));
+ } catch (IOException e) {
+ throw new GroovyBugError("Failed to create
StringReaderSource", e);
}
- } catch (IOException e) {
- throw new GroovyBugError("Failed to create StringReaderSource
instance", e);
}
-
return null;
}
@Override
- public ModuleNode buildAST(SourceUnit sourceUnit, ClassLoader classLoader,
Reduction cst) throws ParserException {
- ReaderSource readerSource = sourceUnit.getSource();
-
- try (Reader sourceReader = null != readerSource ?
readerSource.getReader() : null) {
- if (null == readerSource || null == sourceReader) {
- sourceUnit.setSource(this.readerSource);
- }
- } catch (IOException e) {
- sourceUnit.setSource(this.readerSource);
- }
-
- AstBuilder builder = new AstBuilder(sourceUnit, compilerConfiguration);
-
+ 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());
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 24363d5..ee433ca 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
@@ -23,12 +23,18 @@ import org.codehaus.groovy.control.ParserPlugin;
import org.codehaus.groovy.control.ParserPluginFactory;
/**
- * A parser plugin factory for the new parser
+ * A parser plugin factory for the new parser.
*/
public class Antlr4PluginFactory extends ParserPluginFactory {
- private CompilerConfiguration compilerConfiguration;
- public Antlr4PluginFactory(CompilerConfiguration compilerConfiguration) {
+ private final CompilerConfiguration compilerConfiguration;
+
+ public Antlr4PluginFactory() {
+ this.compilerConfiguration = null;
+ }
+
+ @Deprecated
+ public Antlr4PluginFactory(final CompilerConfiguration
compilerConfiguration) {
this.compilerConfiguration = compilerConfiguration;
}
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 e12712c..99df11c 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
@@ -336,9 +336,14 @@ import static
org.codehaus.groovy.runtime.DefaultGroovyMethods.last;
/**
* Builds the AST from the parse tree generated by Antlr4.
*/
-public class AstBuilder extends GroovyParserBaseVisitor<Object> implements
GroovyParserVisitor<Object> {
+public class AstBuilder extends GroovyParserBaseVisitor<Object> {
- public AstBuilder(SourceUnit sourceUnit, CompilerConfiguration
compilerConfiguration) {
+ @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);
CharStream charStream = createCharStream(sourceUnit);
@@ -347,7 +352,7 @@ public class AstBuilder extends
GroovyParserBaseVisitor<Object> implements Groov
this.parser = new GroovyLangParser(new CommonTokenStream(this.lexer));
this.parser.setErrorHandler(new DescriptiveErrorStrategy(charStream));
- this.groovydocManager = new GroovydocManager(compilerConfiguration);
+ this.groovydocManager = new GroovydocManager(groovydocEnabled,
runtimeGroovydocEnabled);
this.tryWithResourcesASTTransformation = new
TryWithResourcesASTTransformation(this);
}
diff --git
a/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/GroovydocManager.java
b/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/GroovydocManager.java
index 227ead7..f872a2d 100644
---
a/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/GroovydocManager.java
+++
b/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/GroovydocManager.java
@@ -44,17 +44,22 @@ import static
org.codehaus.groovy.runtime.DefaultGroovyMethods.asBoolean;
* 3) attach groovydoc to AST node as metadata
*/
public class GroovydocManager {
+
public static final String DOC_COMMENT = GroovydocHolder.DOC_COMMENT; //
keys for meta data
private static final String GROOVYDOC_PREFIX = "/**";
private static final String RUNTIME_GROOVYDOC_PREFIX = GROOVYDOC_PREFIX +
"@";
private static final String VALUE = "value";
private static final Pattern SPACES_PATTERN = Pattern.compile("\\s+");
- private final boolean groovydocEnabled;
- private final boolean runtimeGroovydocEnabled;
+ private final boolean groovydocEnabled, runtimeGroovydocEnabled;
+
+ @Deprecated
+ public GroovydocManager(final CompilerConfiguration compilerConfiguration)
{
+ this(compilerConfiguration.isGroovydocEnabled(),
compilerConfiguration.isRuntimeGroovydocEnabled());
+ }
- public GroovydocManager(CompilerConfiguration compilerConfiguration) {
- this.groovydocEnabled = compilerConfiguration.isGroovydocEnabled();
- this.runtimeGroovydocEnabled =
compilerConfiguration.isRuntimeGroovydocEnabled();
+ public GroovydocManager(final boolean groovydocEnabled, final boolean
runtimeGroovydocEnabled) {
+ this.groovydocEnabled = groovydocEnabled;
+ this.runtimeGroovydocEnabled = runtimeGroovydocEnabled;
}
/**