Repository: groovy
Updated Branches:
  refs/heads/master b30c3d878 -> 8badf9af2


Improve the performance of the new parser(P.S. recommended API has performance 
issue)


Project: http://git-wip-us.apache.org/repos/asf/groovy/repo
Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/8badf9af
Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/8badf9af
Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/8badf9af

Branch: refs/heads/master
Commit: 8badf9af28693b52293fc8cee7a00c85a552ea86
Parents: b30c3d8
Author: sunlan <[email protected]>
Authored: Mon Aug 28 13:39:34 2017 +0800
Committer: sunlan <[email protected]>
Committed: Mon Aug 28 13:39:44 2017 +0800

----------------------------------------------------------------------
 src/main/antlr/GroovyParser.g4                                 | 3 ++-
 .../main/java/org/apache/groovy/parser/antlr4/AstBuilder.java  | 6 +++++-
 2 files changed, 7 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/groovy/blob/8badf9af/src/main/antlr/GroovyParser.g4
----------------------------------------------------------------------
diff --git a/src/main/antlr/GroovyParser.g4 b/src/main/antlr/GroovyParser.g4
index 362706e..2c34c93 100644
--- a/src/main/antlr/GroovyParser.g4
+++ b/src/main/antlr/GroovyParser.g4
@@ -1250,8 +1250,9 @@ keywords
 rparen
     :   RPAREN
     |
-        // !!!Error Alternatives, impact the performance of parsing!!!
+        // !!!Error Alternatives
         { require(false, "Missing ')'"); }
+        ~RPAREN
     ;
 
 nls

http://git-wip-us.apache.org/repos/asf/groovy/blob/8badf9af/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 968e7c4..00694e6 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
@@ -20,8 +20,8 @@ package org.apache.groovy.parser.antlr4;
 
 import groovy.lang.IntRange;
 import org.antlr.v4.runtime.ANTLRErrorListener;
+import org.antlr.v4.runtime.ANTLRInputStream;
 import org.antlr.v4.runtime.CharStream;
-import org.antlr.v4.runtime.CharStreams;
 import org.antlr.v4.runtime.CommonTokenStream;
 import org.antlr.v4.runtime.RecognitionException;
 import org.antlr.v4.runtime.Recognizer;
@@ -172,9 +172,13 @@ public class AstBuilder extends 
GroovyParserBaseVisitor<Object> implements Groov
         CharStream charStream;
 
         try {
+            /*
             charStream = CharStreams.fromReader(
                     new BufferedReader(sourceUnit.getSource().getReader()),
                     sourceUnit.getName());
+            */
+
+            charStream = new ANTLRInputStream(new 
BufferedReader(sourceUnit.getSource().getReader()));
         } catch (IOException e) {
             throw new RuntimeException("Error occurred when reading source 
code.", e);
         }

Reply via email to