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

sunlan pushed a commit to branch nextflow-perf-issue
in repository https://gitbox.apache.org/repos/asf/groovy.git


The following commit(s) were added to refs/heads/nextflow-perf-issue by this 
push:
     new cf01a58  Fix choosing wrong plugin factory when `-Dgroovy.antlr4` was 
not set
cf01a58 is described below

commit cf01a5832563a1897d302d37b070cd3b1373788a
Author: Daniel Sun <[email protected]>
AuthorDate: Sun Jan 19 19:01:43 2020 +0800

    Fix choosing wrong plugin factory when `-Dgroovy.antlr4` was not set
    
    antlr2-parse: 0.579s elapsed
    antlr4-parse1: 4.653s elapsed    <--  cache is empty
    antlr4-parse2: 1.511s elapsed    <--  cache is filled
    antlr2-gen: 0.474s elapsed
    antlr4-gen: 1.644s elapsed       <--  cache is filled
---
 src/test/groovy/bugs/StubGenTest.groovy                    |  8 +++++++-
 .../main/java/org/apache/groovy/parser/Antlr2Parser.java   | 14 +++++++++++++-
 .../main/java/org/apache/groovy/parser/Antlr4Parser.java   |  5 ++---
 3 files changed, 22 insertions(+), 5 deletions(-)

diff --git a/src/test/groovy/bugs/StubGenTest.groovy 
b/src/test/groovy/bugs/StubGenTest.groovy
index 7a76511..5540aee 100644
--- a/src/test/groovy/bugs/StubGenTest.groovy
+++ b/src/test/groovy/bugs/StubGenTest.groovy
@@ -72,7 +72,13 @@ final class StubGenTest {
         parser.parse(file)
         def e = System.currentTimeMillis()
 
-        println "antlr4-parse: ${(e - b) / 1000}s elapsed"
+        println "antlr4-parse1: ${(e - b) / 1000}s elapsed"
+
+        def b2 = System.currentTimeMillis()
+        parser.parse(file)
+        def e2 = System.currentTimeMillis()
+
+        println "antlr4-parse2: ${(e2 - b2) / 1000}s elapsed"
     }
 
     @Test
diff --git 
a/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/Antlr2Parser.java
 
b/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/Antlr2Parser.java
index d1a1436..2808509 100644
--- 
a/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/Antlr2Parser.java
+++ 
b/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/Antlr2Parser.java
@@ -18,14 +18,26 @@
  */
 package org.apache.groovy.parser;
 
+import org.codehaus.groovy.antlr.AntlrParserPluginFactory;
 import org.codehaus.groovy.control.CompilerConfiguration;
 
 /**
  * The Antlr2 parser for creating a module node.
  */
 public class Antlr2Parser extends AbstractParser {
+    private final CompilerConfiguration compilerConfiguration;
+
+    public Antlr2Parser() {
+        this(new CompilerConfiguration(CompilerConfiguration.DEFAULT));
+    }
+
+    public Antlr2Parser(CompilerConfiguration compilerConfiguration) {
+        this.compilerConfiguration = compilerConfiguration;
+        compilerConfiguration.setPluginFactory(new AntlrParserPluginFactory());
+    }
+
     @Override
     protected CompilerConfiguration getCompilerConfiguration() {
-        return CompilerConfiguration.DEFAULT;
+        return compilerConfiguration;
     }
 }
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 96df593..7cb14fb 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,17 +28,16 @@ public class Antlr4Parser extends AbstractParser {
     private final CompilerConfiguration compilerConfiguration;
 
     public Antlr4Parser() {
-        this.compilerConfiguration = new 
CompilerConfiguration(CompilerConfiguration.DEFAULT);
+        this(new CompilerConfiguration(CompilerConfiguration.DEFAULT));
     }
 
     public Antlr4Parser(CompilerConfiguration compilerConfiguration) {
         this.compilerConfiguration = compilerConfiguration;
+        compilerConfiguration.setPluginFactory(new 
Antlr4PluginFactory(compilerConfiguration));
     }
 
     @Override
     protected CompilerConfiguration getCompilerConfiguration() {
-        compilerConfiguration.setPluginFactory(new 
Antlr4PluginFactory(compilerConfiguration));
-
         return compilerConfiguration;
     }
 }

Reply via email to