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 2017/09/30 12:53:58 UTC

groovy git commit: Minor refactoring: list

Repository: groovy
Updated Branches:
  refs/heads/master d1c9de369 -> cbb9a6be1


Minor refactoring: list


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

Branch: refs/heads/master
Commit: cbb9a6be1dbff6fa43dd9c32b2bed55b1874a608
Parents: d1c9de3
Author: sunlan <su...@apache.org>
Authored: Sat Sep 30 20:53:46 2017 +0800
Committer: sunlan <su...@apache.org>
Committed: Sat Sep 30 20:53:46 2017 +0800

----------------------------------------------------------------------
 src/antlr/GroovyParser.g4                              | 12 +-----------
 .../org/apache/groovy/parser/antlr4/AstBuilder.java    | 13 ++++++++++---
 2 files changed, 11 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/groovy/blob/cbb9a6be/src/antlr/GroovyParser.g4
----------------------------------------------------------------------
diff --git a/src/antlr/GroovyParser.g4 b/src/antlr/GroovyParser.g4
index 36c4bde..f2098e3 100644
--- a/src/antlr/GroovyParser.g4
+++ b/src/antlr/GroovyParser.g4
@@ -1064,17 +1064,7 @@ primary
     ;
 
 list
-locals[boolean empty = true]
-    :   LBRACK
-        (
-            expressionList[true]
-            { $empty = false; }
-        )?
-        (
-            COMMA
-            { require(!$empty, "Empty list constructor should not contain any comma(,)", -1); }
-        )?
-        RBRACK
+    :   LBRACK expressionList[true]? COMMA? RBRACK
     ;
 
 map

http://git-wip-us.apache.org/repos/asf/groovy/blob/cbb9a6be/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 b1a9fa6..dfa370f 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
@@ -2261,7 +2261,7 @@ public class AstBuilder extends GroovyParserBaseVisitor<Object> implements Groov
     @Override
     public Expression visitArguments(ArgumentsContext ctx) {
         if (asBoolean(ctx) && asBoolean(ctx.COMMA()) && !asBoolean(ctx.enhancedArgumentList())) {
-            throw createParsingFailedException("Expression expected", ctx);
+            throw createParsingFailedException("Expression expected", ctx.COMMA());
         }
 
         if (!asBoolean(ctx) || !asBoolean(ctx.enhancedArgumentList())) {
@@ -3094,6 +3094,10 @@ public class AstBuilder extends GroovyParserBaseVisitor<Object> implements Groov
 
     @Override
     public ListExpression visitList(ListContext ctx) {
+        if (asBoolean(ctx.COMMA()) && !asBoolean(ctx.expressionList())) {
+            throw createParsingFailedException("Empty list constructor should not contain any comma(,)", ctx.COMMA());
+        }
+
         return configureAST(
                 new ListExpression(
                         this.visitExpressionList(ctx.expressionList())),
@@ -4271,7 +4275,11 @@ public class AstBuilder extends GroovyParserBaseVisitor<Object> implements Groov
                         node.getLastColumnNumber()));
     }
 
-    /*
+
+    private CompilationFailedException createParsingFailedException(String msg, TerminalNode node) {
+        return createParsingFailedException(msg, node.getSymbol());
+    }
+
     private CompilationFailedException createParsingFailedException(String msg, Token token) {
         return createParsingFailedException(
                 new SyntaxException(msg,
@@ -4280,7 +4288,6 @@ public class AstBuilder extends GroovyParserBaseVisitor<Object> implements Groov
                         token.getLine(),
                         token.getCharPositionInLine() + 1 + token.getText().length()));
     }
-    */
 
     private CompilationFailedException createParsingFailedException(Throwable t) {
         if (t instanceof SyntaxException) {