Repository: groovy
Updated Branches:
  refs/heads/master b5d4d7ab8 -> e22974b0e


Refine the text of rule context


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

Branch: refs/heads/master
Commit: e22974b0edaeaf83410c5737cd09b229e505f226
Parents: b5d4d7a
Author: Daniel Sun <sun...@apache.org>
Authored: Sun Dec 2 15:47:21 2018 +0800
Committer: Daniel Sun <sun...@apache.org>
Committed: Sun Dec 2 15:47:21 2018 +0800

----------------------------------------------------------------------
 .../java/org/apache/groovy/parser/antlr4/AstBuilder.java | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/groovy/blob/e22974b0/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 1697088..01bd38a 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
@@ -23,10 +23,12 @@ import org.antlr.v4.runtime.ANTLRErrorListener;
 import org.antlr.v4.runtime.CharStream;
 import org.antlr.v4.runtime.CharStreams;
 import org.antlr.v4.runtime.CommonTokenStream;
+import org.antlr.v4.runtime.ParserRuleContext;
 import org.antlr.v4.runtime.RecognitionException;
 import org.antlr.v4.runtime.Recognizer;
 import org.antlr.v4.runtime.Token;
 import org.antlr.v4.runtime.atn.PredictionMode;
+import org.antlr.v4.runtime.misc.Interval;
 import org.antlr.v4.runtime.misc.ParseCancellationException;
 import org.antlr.v4.runtime.tree.ParseTree;
 import org.antlr.v4.runtime.tree.TerminalNode;
@@ -2127,10 +2129,11 @@ public class AstBuilder extends 
GroovyParserBaseVisitor<Object> implements Groov
 
         Expression baseExpr = (Expression) this.visit(ctx.expression());
 
+
         if (hasArgumentList || hasCommandArgument) {
             if (baseExpr instanceof BinaryExpression) {
                 if (!"[".equals(((BinaryExpression) 
baseExpr).getOperation().getText()) && !isInsideParentheses(baseExpr)) {
-                    throw createParsingFailedException("Unexpected input: '" + 
ctx.expression().getText() + "'", ctx.expression());
+                    throw createParsingFailedException("Unexpected input: '" + 
getOriginalText(ctx.expression()) + "'", ctx.expression());
                 }
             }
         }
@@ -4593,6 +4596,12 @@ public class AstBuilder extends 
GroovyParserBaseVisitor<Object> implements Groov
 
     }
 
+    private String getOriginalText(ParserRuleContext context) {
+        CharStream charStream = lexer.getInputStream();
+        return 
charStream.getText(Interval.of(context.getStart().getStartIndex(), 
context.getStop().getStopIndex()));
+
+    }
+
     private boolean isTrue(NodeMetaDataHandler nodeMetaDataHandler, String 
key) {
         Object nmd = nodeMetaDataHandler.getNodeMetaData(key);
 

Reply via email to