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); }
