You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by su...@apache.org on 2018/12/09 03:28:49 UTC
groovy git commit: GROOVY-8915: [Parrot] Make groovydoc configuration
flexible(closes #836)
Repository: groovy
Updated Branches:
refs/heads/master 59efbe72a -> 13507791f
GROOVY-8915: [Parrot] Make groovydoc configuration flexible(closes #836)
Project: http://git-wip-us.apache.org/repos/asf/groovy/repo
Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/13507791
Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/13507791
Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/13507791
Branch: refs/heads/master
Commit: 13507791fd521ee54674908fda59450bcf966335
Parents: 59efbe7
Author: Daniel Sun <su...@apache.org>
Authored: Sun Dec 9 11:25:35 2018 +0800
Committer: Daniel Sun <su...@apache.org>
Committed: Sun Dec 9 11:25:35 2018 +0800
----------------------------------------------------------------------
.../groovy/control/CompilerConfiguration.java | 60 +++++++++++++++++---
.../groovy/control/ParserPluginFactory.java | 29 +---------
subprojects/parser-antlr4/build.gradle | 2 +-
.../org/apache/groovy/parser/Antlr4Parser.java | 14 ++++-
.../parser/antlr4/Antlr4ParserPlugin.java | 8 ++-
.../parser/antlr4/Antlr4PluginFactory.java | 9 ++-
.../apache/groovy/parser/antlr4/AstBuilder.java | 7 ++-
.../groovy/parser/antlr4/GroovydocManager.java | 48 ++++++----------
.../parser/antlr4/GroovyParserTest.groovy | 11 +++-
.../groovy/parser/antlr4/TestUtils.groovy | 23 ++++----
10 files changed, 124 insertions(+), 87 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/groovy/blob/13507791/src/main/java/org/codehaus/groovy/control/CompilerConfiguration.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/control/CompilerConfiguration.java b/src/main/java/org/codehaus/groovy/control/CompilerConfiguration.java
index 2cea431..ff2ee9e 100644
--- a/src/main/java/org/codehaus/groovy/control/CompilerConfiguration.java
+++ b/src/main/java/org/codehaus/groovy/control/CompilerConfiguration.java
@@ -49,6 +49,12 @@ public class CompilerConfiguration {
/** This (<code>"indy"</code>) is the Optimization Option value for enabling <code>invokedynamic</code> compilation. */
public static final String INVOKEDYNAMIC = "indy";
+ /** This (<code>"groovdoc"</code>) is the Optimization Option value for enabling attaching groovydoc as AST node metadata. */
+ public static final String GROOVYDOC = "groovdoc";
+
+ /** This (<code>"runtimeGroovdoc"</code>) is the Optimization Option value for enabling attaching {@link groovy.lang.Groovydoc} annotation*/
+ public static final String RUNTIME_GROOVYDOC = "runtimeGroovdoc";
+
/** This (<code>"1.4"</code>) is the value for targetBytecode to compile for a JDK 1.4. **/
public static final String JDK4 = "1.4";
/** This (<code>"1.5"</code>) is the value for targetBytecode to compile for a JDK 1.5. **/
@@ -265,14 +271,12 @@ public class CompilerConfiguration {
setTargetDirectory(target);
}
- boolean indy = getBooleanSafe("groovy.target.indy");
- if (DEFAULT!=null && Boolean.TRUE.equals(DEFAULT.getOptimizationOptions().get(INVOKEDYNAMIC))) {
- indy = true;
- }
- Map options = new HashMap<String,Boolean>(3);
- if (indy) {
- options.put(INVOKEDYNAMIC, Boolean.TRUE);
- }
+ Map<String, Boolean> options = new HashMap<>(4);
+
+ handleOptimizationOption(options, INVOKEDYNAMIC, "groovy.target.indy");
+ handleOptimizationOption(options, GROOVYDOC, "groovy.attach.groovydoc");
+ handleOptimizationOption(options, RUNTIME_GROOVYDOC, "groovy.attach.runtime.groovydoc");
+
setOptimizationOptions(options);
try {
@@ -287,6 +291,16 @@ public class CompilerConfiguration {
}
}
+ private void handleOptimizationOption(Map<String, Boolean> options, String optionName, String sysOptionName) {
+ boolean optionEnabled = getBooleanSafe(sysOptionName);
+ if (DEFAULT != null && Boolean.TRUE.equals(DEFAULT.getOptimizationOptions().get(optionName))) {
+ optionEnabled = true;
+ }
+ if (optionEnabled) {
+ options.put(optionName, Boolean.TRUE);
+ }
+ }
+
/**
* Copy constructor. Use this if you have a mostly correct configuration
* for your compilation but you want to make a some changes programatically.
@@ -737,7 +751,7 @@ public class CompilerConfiguration {
if (pluginFactory == null) {
pluginFactory = ParserVersion.V_2 == parserVersion
? ParserPluginFactory.antlr2()
- : ParserPluginFactory.antlr4();
+ : ParserPluginFactory.antlr4(this);
}
return pluginFactory;
}
@@ -930,6 +944,34 @@ public class CompilerConfiguration {
return indyEnabled;
}
+ /**
+ * Check whether groovydoc enabled
+ * @return the result
+ */
+ public boolean isGroovydocEnabled() {
+ Boolean groovydocEnabled = this.getOptimizationOptions().get(GROOVYDOC);
+
+ if (null == groovydocEnabled) {
+ return false;
+ }
+
+ return groovydocEnabled;
+ }
+
+ /**
+ * Check whether runtime groovydoc enabled
+ * @return the result
+ */
+ public boolean isRuntimeGroovydocEnabled() {
+ Boolean runtimeGroovydocEnabled = this.getOptimizationOptions().get(RUNTIME_GROOVYDOC);
+
+ if (null == runtimeGroovydocEnabled) {
+ return false;
+ }
+
+ return runtimeGroovydocEnabled;
+ }
+
// See http://groovy.329449.n5.nabble.com/What-the-static-compile-by-default-tt5750118.html
// https://issues.apache.org/jira/browse/GROOVY-8543
//
http://git-wip-us.apache.org/repos/asf/groovy/blob/13507791/src/main/java/org/codehaus/groovy/control/ParserPluginFactory.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/control/ParserPluginFactory.java b/src/main/java/org/codehaus/groovy/control/ParserPluginFactory.java
index 1d7a994..0b6f143 100644
--- a/src/main/java/org/codehaus/groovy/control/ParserPluginFactory.java
+++ b/src/main/java/org/codehaus/groovy/control/ParserPluginFactory.java
@@ -18,43 +18,20 @@
*/
package org.codehaus.groovy.control;
-import groovy.lang.GroovyRuntimeException;
+import org.apache.groovy.parser.antlr4.Antlr4PluginFactory;
import org.codehaus.groovy.antlr.AntlrParserPluginFactory;
-import java.security.AccessController;
-import java.security.PrivilegedActionException;
-import java.security.PrivilegedExceptionAction;
-
/**
* A factory of parser plugin instances
*
*/
public abstract class ParserPluginFactory {
- private static Class<?> ANTLR4_CLASS=null;
-
/**
* creates the ANTLR 4 parser
* @return the factory for the parser
*/
- public static ParserPluginFactory antlr4() {
- if (ANTLR4_CLASS==null) {
- String name = "org.apache.groovy.parser.antlr4.Antlr4PluginFactory";
- try {
- ANTLR4_CLASS =
- Class.forName(name, false, ParserPluginFactory.class.getClassLoader());
- } catch (Exception e) {
- throw new GroovyRuntimeException("Could not find or load parser plugin factory for antlr4", e);
- }
- }
- try {
- return AccessController.doPrivileged(new PrivilegedExceptionAction<ParserPluginFactory>() {
- public ParserPluginFactory run() throws Exception {
- return (ParserPluginFactory) ANTLR4_CLASS.newInstance();
- }
- });
- } catch (PrivilegedActionException e) {
- throw new GroovyRuntimeException("Could not create instance of parser plugin factory for antlr4", e.getCause());
- }
+ public static ParserPluginFactory antlr4(CompilerConfiguration compilerConfiguration) {
+ return new Antlr4PluginFactory(compilerConfiguration);
}
/**
http://git-wip-us.apache.org/repos/asf/groovy/blob/13507791/subprojects/parser-antlr4/build.gradle
----------------------------------------------------------------------
diff --git a/subprojects/parser-antlr4/build.gradle b/subprojects/parser-antlr4/build.gradle
index f813360..f69c40b 100644
--- a/subprojects/parser-antlr4/build.gradle
+++ b/subprojects/parser-antlr4/build.gradle
@@ -75,5 +75,5 @@ sourceSets.test.groovy.srcDirs += file("$srcTest/groovy")
sourceSets.test.resources.srcDirs += file("$srcTest/resources")
tasks.withType(Test) {
- jvmArgs "-Dgroovy.attach.groovydoc=true", "-Dgroovy.antlr4.cache.threshold=100"
+ jvmArgs /*"-Dgroovy.attach.groovydoc=true", "-Dgroovy.attach.runtime.groovydoc=true",*/ "-Dgroovy.antlr4.cache.threshold=100"
}
http://git-wip-us.apache.org/repos/asf/groovy/blob/13507791/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/Antlr4Parser.java
----------------------------------------------------------------------
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 ebe569c..8c13e57 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
@@ -28,12 +28,20 @@ import org.codehaus.groovy.control.CompilerConfiguration;
* Created on 2016/08/14
*/
public class Antlr4Parser extends AbstractParser {
+ private final CompilerConfiguration compilerConfiguration;
+
+ public Antlr4Parser() {
+ this.compilerConfiguration = new CompilerConfiguration(CompilerConfiguration.DEFAULT);
+ }
+
+ public Antlr4Parser(CompilerConfiguration compilerConfiguration) {
+ this.compilerConfiguration = compilerConfiguration;
+ }
@Override
protected CompilerConfiguration getCompilerConfiguration() {
- CompilerConfiguration configuration = new CompilerConfiguration(CompilerConfiguration.DEFAULT);
- configuration.setPluginFactory(new Antlr4PluginFactory());
+ compilerConfiguration.setPluginFactory(new Antlr4PluginFactory(compilerConfiguration));
- return configuration;
+ return compilerConfiguration;
}
}
http://git-wip-us.apache.org/repos/asf/groovy/blob/13507791/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/Antlr4ParserPlugin.java
----------------------------------------------------------------------
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 0f35f1d..abd21f2 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
@@ -21,6 +21,7 @@ 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;
@@ -40,6 +41,11 @@ import java.io.Reader;
*/
public class Antlr4ParserPlugin implements ParserPlugin {
private ReaderSource readerSource;
+ private CompilerConfiguration compilerConfiguration;
+
+ public Antlr4ParserPlugin(CompilerConfiguration compilerConfiguration) {
+ this.compilerConfiguration = compilerConfiguration;
+ }
@Override
public Reduction parseCST(SourceUnit sourceUnit, java.io.Reader reader) throws CompilationFailedException {
@@ -70,7 +76,7 @@ public class Antlr4ParserPlugin implements ParserPlugin {
sourceUnit.setSource(this.readerSource);
}
- AstBuilder builder = new AstBuilder(sourceUnit);
+ AstBuilder builder = new AstBuilder(sourceUnit, compilerConfiguration);
return builder.buildAST();
}
http://git-wip-us.apache.org/repos/asf/groovy/blob/13507791/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/Antlr4PluginFactory.java
----------------------------------------------------------------------
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 10309d0..2aeca9d 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,6 +18,7 @@
*/
package org.apache.groovy.parser.antlr4;
+import org.codehaus.groovy.control.CompilerConfiguration;
import org.codehaus.groovy.control.ParserPlugin;
import org.codehaus.groovy.control.ParserPluginFactory;
@@ -28,8 +29,14 @@ import org.codehaus.groovy.control.ParserPluginFactory;
* Created on 2016/08/14
*/
public class Antlr4PluginFactory extends ParserPluginFactory {
+ private CompilerConfiguration compilerConfiguration;
+
+ public Antlr4PluginFactory(CompilerConfiguration compilerConfiguration) {
+ this.compilerConfiguration = compilerConfiguration;
+ }
+
@Override
public ParserPlugin createParserPlugin() {
- return new Antlr4ParserPlugin();
+ return new Antlr4ParserPlugin(compilerConfiguration);
}
}
http://git-wip-us.apache.org/repos/asf/groovy/blob/13507791/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/AstBuilder.java
----------------------------------------------------------------------
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 01bd38a..5f2d31d 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
@@ -112,6 +112,7 @@ 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;
@@ -358,8 +359,9 @@ import static org.codehaus.groovy.runtime.DefaultGroovyMethods.last;
*/
public class AstBuilder extends GroovyParserBaseVisitor<Object> implements GroovyParserVisitor<Object> {
- public AstBuilder(SourceUnit sourceUnit) {
+ public AstBuilder(SourceUnit sourceUnit, CompilerConfiguration compilerConfiguration) {
this.sourceUnit = sourceUnit;
+ this.compilerConfiguration = compilerConfiguration;
this.moduleNode = new ModuleNode(sourceUnit);
this.lexer = new GroovyLangLexer(createCharStream(sourceUnit));
@@ -370,7 +372,7 @@ public class AstBuilder extends GroovyParserBaseVisitor<Object> implements Groov
this.parser.setErrorHandler(new DescriptiveErrorStrategy(this.lexer.getInputStream()));
this.tryWithResourcesASTTransformation = new TryWithResourcesASTTransformation(this);
- this.groovydocManager = GroovydocManager.getInstance();
+ this.groovydocManager = new GroovydocManager(compilerConfiguration);
}
private CharStream createCharStream(SourceUnit sourceUnit) {
@@ -4758,6 +4760,7 @@ public class AstBuilder extends GroovyParserBaseVisitor<Object> implements Groov
private final ModuleNode moduleNode;
private final SourceUnit sourceUnit;
+ private final CompilerConfiguration compilerConfiguration;
private final GroovyLangLexer lexer;
private final GroovyLangParser parser;
private final TryWithResourcesASTTransformation tryWithResourcesASTTransformation;
http://git-wip-us.apache.org/repos/asf/groovy/blob/13507791/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/GroovydocManager.java
----------------------------------------------------------------------
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 ea73475..227ead7 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
@@ -29,6 +29,7 @@ import org.codehaus.groovy.ast.AnnotatedNode;
import org.codehaus.groovy.ast.AnnotationNode;
import org.codehaus.groovy.ast.ClassHelper;
import org.codehaus.groovy.ast.expr.ConstantExpression;
+import org.codehaus.groovy.control.CompilerConfiguration;
import java.util.List;
import java.util.regex.Pattern;
@@ -46,39 +47,14 @@ 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 TRUE_STR = "true";
-
- @Deprecated
- private static final String EXTRACT_DOC_COMMENT = "groovy.extract.doc.comment"; // it will be removed in future releases and replaced with ATTACH_GROOVYDOC
- private static final String ATTACH_GROOVYDOC = "groovy.attach.groovydoc";
- private static final boolean ATTACHING_GROOVYDOC_ENABLED;
- private static final String ATTACH_RUNTIME_GROOVYDOC = "groovy.attach.runtime.groovydoc";
- private static final boolean ATTACHING_RUNTIME_GROOVYDOC_ENABLED;
private static final String VALUE = "value";
- private static final GroovydocManager INSTANCE = new GroovydocManager();
private static final Pattern SPACES_PATTERN = Pattern.compile("\\s+");
+ private final boolean groovydocEnabled;
+ private final boolean runtimeGroovydocEnabled;
- static {
- ATTACHING_GROOVYDOC_ENABLED = isFeatureEnabled(ATTACH_GROOVYDOC) || isFeatureEnabled(EXTRACT_DOC_COMMENT);
- ATTACHING_RUNTIME_GROOVYDOC_ENABLED = isFeatureEnabled(ATTACH_RUNTIME_GROOVYDOC);
- }
-
- private static boolean isFeatureEnabled(String featureOpt) {
- boolean result;
-
- try {
- result = TRUE_STR.equals(System.getProperty(featureOpt));
- } catch (Exception e) {
- result = false;
- }
-
- return result;
- }
-
- private GroovydocManager() {}
-
- public static GroovydocManager getInstance() {
- return INSTANCE;
+ public GroovydocManager(CompilerConfiguration compilerConfiguration) {
+ this.groovydocEnabled = compilerConfiguration.isGroovydocEnabled();
+ this.runtimeGroovydocEnabled = compilerConfiguration.isRuntimeGroovydocEnabled();
}
/**
@@ -86,6 +62,10 @@ public class GroovydocManager {
*
*/
public void handle(ASTNode node, GroovyParser.GroovyParserRuleContext ctx) {
+ if (!(groovydocEnabled || runtimeGroovydocEnabled)) {
+ return;
+ }
+
if (!asBoolean(node) || !asBoolean(ctx)) {
return;
}
@@ -103,7 +83,7 @@ public class GroovydocManager {
* Attach doc comment to member node as meta data
*/
private void attachDocCommentAsMetaData(ASTNode node, String docCommentNodeText) {
- if (!ATTACHING_GROOVYDOC_ENABLED) {
+ if (!groovydocEnabled) {
return;
}
@@ -118,11 +98,15 @@ public class GroovydocManager {
* Attach Groovydoc annotation to the target element
*/
private void attachGroovydocAnnotation(ASTNode node, String docCommentNodeText) {
+ if (!runtimeGroovydocEnabled) {
+ return;
+ }
+
if (!(node instanceof AnnotatedNode)) {
return;
}
- if (!(ATTACHING_RUNTIME_GROOVYDOC_ENABLED || docCommentNodeText.startsWith(RUNTIME_GROOVYDOC_PREFIX))) {
+ if (!docCommentNodeText.startsWith(RUNTIME_GROOVYDOC_PREFIX)) {
return;
}
http://git-wip-us.apache.org/repos/asf/groovy/blob/13507791/subprojects/parser-antlr4/src/test/groovy/org/apache/groovy/parser/antlr4/GroovyParserTest.groovy
----------------------------------------------------------------------
diff --git a/subprojects/parser-antlr4/src/test/groovy/org/apache/groovy/parser/antlr4/GroovyParserTest.groovy b/subprojects/parser-antlr4/src/test/groovy/org/apache/groovy/parser/antlr4/GroovyParserTest.groovy
index d627229..c4fb203 100644
--- a/subprojects/parser-antlr4/src/test/groovy/org/apache/groovy/parser/antlr4/GroovyParserTest.groovy
+++ b/subprojects/parser-antlr4/src/test/groovy/org/apache/groovy/parser/antlr4/GroovyParserTest.groovy
@@ -18,6 +18,7 @@
*/
package org.apache.groovy.parser.antlr4
+import org.apache.groovy.parser.antlr4.util.ASTComparatorCategory
import org.codehaus.groovy.ast.ClassNode
import org.codehaus.groovy.ast.FieldNode
import org.codehaus.groovy.ast.MethodNode
@@ -25,6 +26,7 @@ import org.codehaus.groovy.ast.Parameter
import org.codehaus.groovy.ast.PropertyNode
import org.codehaus.groovy.ast.stmt.AssertStatement
import org.codehaus.groovy.ast.stmt.ExpressionStatement
+import org.codehaus.groovy.control.CompilerConfiguration
import org.codehaus.groovy.syntax.Token
import static org.apache.groovy.parser.antlr4.TestUtils.doRunAndTest
@@ -73,7 +75,9 @@ class GroovyParserTest extends GroovyTestCase {
}
private static doTestAttachedComments() {
- def (newAST, oldAST) = doTest('core/Comments_02.groovy')
+ CompilerConfiguration compilerConfiguration = new CompilerConfiguration(CompilerConfiguration.DEFAULT)
+ compilerConfiguration.setOptimizationOptions([(CompilerConfiguration.GROOVYDOC): true])
+ def (newAST, oldAST) = doTest('core/Comments_02.groovy', ASTComparatorCategory.DEFAULT_CONFIGURATION, compilerConfiguration)
List<ClassNode> classes = new ArrayList<>(newAST.classes).sort { c1, c2 -> c1.name <=> c2.name }
List<MethodNode> methods = new ArrayList<>(newAST.methods).sort { m1, m2 -> m1.name <=> m2.name }
@@ -385,7 +389,10 @@ class GroovyParserTest extends GroovyTestCase {
}
void "test groovy core - Groovydoc"() {
- doRunAndTestAntlr4('core/Groovydoc_01x.groovy')
+ CompilerConfiguration compilerConfiguration = new CompilerConfiguration(CompilerConfiguration.DEFAULT)
+ compilerConfiguration.setOptimizationOptions([(CompilerConfiguration.RUNTIME_GROOVYDOC): true])
+
+ doRunAndTestAntlr4('core/Groovydoc_01x.groovy', compilerConfiguration)
}
void "test groovy core - Script"() {
http://git-wip-us.apache.org/repos/asf/groovy/blob/13507791/subprojects/parser-antlr4/src/test/groovy/org/apache/groovy/parser/antlr4/TestUtils.groovy
----------------------------------------------------------------------
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 af2cb16..655080d 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
@@ -68,9 +68,13 @@ class TestUtils {
return doTest(path, addIgnore(ignoreClazzList, ASTComparatorCategory.LOCATION_IGNORE_LIST))
}
- @CompileDynamic
static doTest(String path, conf) {
- AbstractParser antlr4Parser = new Antlr4Parser()
+ doTest(path, conf, new CompilerConfiguration(CompilerConfiguration.DEFAULT))
+ }
+
+ @CompileDynamic
+ static doTest(String path, conf, CompilerConfiguration compilerConfiguration) {
+ AbstractParser antlr4Parser = new Antlr4Parser(compilerConfiguration)
AbstractParser antlr2Parser = new Antlr2Parser()
File file = new File("$RESOURCES_PATH/$path");
@@ -250,16 +254,16 @@ class TestUtils {
doRunAndTestAntlr4(path)
}
- static doRunAndTestAntlr4(String path) {
- assert executeScript(path);
+ static doRunAndTestAntlr4(String path, CompilerConfiguration compilerConfiguration = new CompilerConfiguration(CompilerConfiguration.DEFAULT)) {
+ assert executeScript(path, compilerConfiguration);
}
static doRunAndTestAntlr2(String path) {
assert executeScript(createAntlr2Shell(), "$RESOURCES_PATH/$path")
}
- static executeScript(String path) {
- executeScript(createAntlr4Shell(), "$RESOURCES_PATH/$path")
+ static executeScript(String path, CompilerConfiguration compilerConfiguration = new CompilerConfiguration(CompilerConfiguration.DEFAULT)) {
+ executeScript(createAntlr4Shell(compilerConfiguration), "$RESOURCES_PATH/$path")
}
static executeScript(GroovyShell gsh, String path) {
@@ -276,11 +280,10 @@ class TestUtils {
}
}
- static GroovyShell createAntlr4Shell() {
- CompilerConfiguration configuration = new CompilerConfiguration(CompilerConfiguration.DEFAULT)
- configuration.pluginFactory = new Antlr4PluginFactory()
+ static GroovyShell createAntlr4Shell(CompilerConfiguration compilerConfiguration = new CompilerConfiguration(CompilerConfiguration.DEFAULT)) {
+ compilerConfiguration.pluginFactory = new Antlr4PluginFactory(compilerConfiguration)
- return new GroovyShell(configuration);
+ return new GroovyShell(compilerConfiguration);
}
static GroovyShell createAntlr2Shell() {