groovy-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From sun...@apache.org
Subject [39/39] groovy git commit: Keep same name rule with groovy-parser-antlr2
Date Wed, 21 Dec 2016 16:36:59 GMT
Keep same name rule with groovy-parser-antlr2


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

Branch: refs/heads/parrot
Commit: fc23a2ed3f8af5cc29e6b6750874205b2b2a7c9d
Parents: 564cdc5
Author: Daniel Sun <sunlan@apache.org>
Authored: Thu Dec 22 00:35:39 2016 +0800
Committer: Daniel Sun <sunlan@apache.org>
Committed: Thu Dec 22 00:35:45 2016 +0800

----------------------------------------------------------------------
 build.gradle                                    |     2 +-
 subprojects/groovy-antlr4-grammar/README.md     |    18 -
 subprojects/groovy-antlr4-grammar/build.gradle  |    59 -
 .../apache/groovy/parser/antlr4/GroovyLexer.g4  |   858 -
 .../apache/groovy/parser/antlr4/GroovyParser.g4 |  1213 --
 .../groovy/parser/antlr4/Java.g4.v20160306.zip  |   Bin 5805 -> 0 bytes
 .../parser/antlr4/util/GroovyTestRig.groovy     |    74 -
 .../apache/groovy/parser/AbstractParser.java    |    83 -
 .../org/apache/groovy/parser/Antlr2Parser.java  |    34 -
 .../org/apache/groovy/parser/Antlr4Parser.java  |    39 -
 .../groovy/parser/antlr4/AbstractLexer.java     |    32 -
 .../groovy/parser/antlr4/AbstractParser.java    |    32 -
 .../parser/antlr4/Antlr4ParserPlugin.java       |    45 -
 .../parser/antlr4/Antlr4PluginFactory.java      |    17 -
 .../apache/groovy/parser/antlr4/AstBuilder.java |  4742 -----
 .../groovy/parser/antlr4/GroovyLangLexer.java   |    45 -
 .../groovy/parser/antlr4/GroovyLangParser.java  |    38 -
 .../groovy/parser/antlr4/GroovySyntaxError.java |    42 -
 .../parser/antlr4/SemanticPredicates.java       |   108 -
 .../parser/antlr4/SyntaxErrorReportable.java    |    38 -
 .../TryWithResourcesASTTransformation.java      |   352 -
 .../parser/antlr4/internal/AtnManager.java      |   107 -
 .../internal/DescriptiveErrorStrategy.java      |   110 -
 .../groovy/parser/antlr4/util/StringUtils.java  |   145 -
 .../parser/antlr4/Geb10SourcesTest.groovy       |  1684 --
 .../parser/antlr4/Gradle310SourcesTest.groovy   | 15941 -----------------
 .../parser/antlr4/Grails320SourcesTest.groovy   |  4648 -----
 .../parser/antlr4/Groovy250ScriptsTest.groovy   | 11081 ------------
 .../parser/antlr4/Groovy250SourcesTest.groovy   |  7427 --------
 .../parser/antlr4/GroovyParserTest.groovy       |   324 -
 .../parser/antlr4/Spock11RC2SourcesTest.groovy  |  1224 --
 .../groovy/parser/antlr4/SyntaxErrorTest.groovy |   136 -
 .../groovy/parser/antlr4/TestUtils.groovy       |   259 -
 .../antlr4/util/ASTComparatorCategory.groovy    |   526 -
 .../groovy/parser/antlr4/util/AstDumper.groovy  |  1025 --
 .../core/AnnotationDeclaration_01.groovy        |    39 -
 .../test/resources/core/Annotation_01.groovy    |     1 -
 .../test/resources/core/Annotation_02.groovy    |     2 -
 .../test/resources/core/Annotation_03.groovy    |     3 -
 .../test/resources/core/Annotation_04.groovy    |     2 -
 .../test/resources/core/Annotation_05.groovy    |     1 -
 .../test/resources/core/Annotation_06.groovy    |     2 -
 .../test/resources/core/Annotation_07.groovy    |     2 -
 .../test/resources/core/Annotation_08.groovy    |    10 -
 .../test/resources/core/Annotation_09.groovy    |    14 -
 .../test/resources/core/Annotation_10x.groovy   |    20 -
 .../src/test/resources/core/Assert_01.groovy    |    28 -
 .../src/test/resources/core/Assert_02x.groovy   |    37 -
 .../src/test/resources/core/Assert_03x.groovy   |    26 -
 .../resources/core/ClassDeclaration_01.groovy   |    47 -
 .../resources/core/ClassDeclaration_02.groovy   |    42 -
 .../resources/core/ClassDeclaration_03.groovy   |    51 -
 .../resources/core/ClassDeclaration_04.groovy   |    22 -
 .../resources/core/ClassDeclaration_05.groovy   |    20 -
 .../resources/core/ClassDeclaration_06.groovy   |    83 -
 .../resources/core/ClassDeclaration_07.groovy   |    27 -
 .../src/test/resources/core/Closure_01.groovy   |     1 -
 .../src/test/resources/core/Closure_02.groovy   |     1 -
 .../src/test/resources/core/Closure_03.groovy   |     1 -
 .../src/test/resources/core/Closure_04.groovy   |     3 -
 .../src/test/resources/core/Closure_05.groovy   |     3 -
 .../src/test/resources/core/Closure_06.groovy   |     9 -
 .../src/test/resources/core/Closure_07.groovy   |     3 -
 .../src/test/resources/core/Closure_08.groovy   |    16 -
 .../src/test/resources/core/Closure_09.groovy   |    16 -
 .../src/test/resources/core/Closure_10.groovy   |     4 -
 .../src/test/resources/core/Command_01.groovy   |    14 -
 .../src/test/resources/core/Command_02.groovy   |    11 -
 .../src/test/resources/core/Command_03.groovy   |    66 -
 .../src/test/resources/core/Command_04.groovy   |     7 -
 .../src/test/resources/core/Command_05.groovy   |    59 -
 .../src/test/resources/core/Command_06x.groovy  |     8 -
 .../src/test/resources/core/Comments_01.groovy  |    28 -
 .../src/test/resources/core/Comments_02.groovy  |   117 -
 .../resources/core/DefaultMethod_01x.groovy     |    21 -
 .../resources/core/DefaultMethod_02x.groovy     |    36 -
 .../src/test/resources/core/DoWhile_01x.groovy  |     7 -
 .../src/test/resources/core/DoWhile_02x.groovy  |     8 -
 .../src/test/resources/core/DoWhile_03x.groovy  |    11 -
 .../src/test/resources/core/DoWhile_04x.groovy  |    14 -
 .../resources/core/ElvisAssignment_01x.groovy   |    38 -
 .../resources/core/EnumDeclaration_01.groovy    |    44 -
 .../resources/core/EnumDeclaration_02.groovy    |    52 -
 .../resources/core/EnumDeclaration_03.groovy    |     6 -
 .../test/resources/core/Expression_01.groovy    |   230 -
 .../test/resources/core/Expression_02.groovy    |     6 -
 .../test/resources/core/Expression_03.groovy    |    31 -
 .../test/resources/core/Expression_04.groovy    |    62 -
 .../test/resources/core/Expression_05.groovy    |    40 -
 .../test/resources/core/Expression_06.groovy    |     6 -
 .../test/resources/core/Expression_07.groovy    |     9 -
 .../test/resources/core/Expression_08.groovy    |     6 -
 .../test/resources/core/Expression_09.groovy    |    16 -
 .../test/resources/core/Expression_10.groovy    |    25 -
 .../test/resources/core/Expression_11.groovy    |    16 -
 .../test/resources/core/Expression_12.groovy    |    17 -
 .../test/resources/core/Expression_13.groovy    |    45 -
 .../test/resources/core/Expression_14.groovy    |    22 -
 .../test/resources/core/Expression_15.groovy    |   127 -
 .../test/resources/core/Expression_16.groovy    |    22 -
 .../test/resources/core/Expression_17.groovy    |   141 -
 .../test/resources/core/Expression_18.groovy    |    26 -
 .../test/resources/core/Expression_19.groovy    |    32 -
 .../test/resources/core/Expression_20.groovy    |     2 -
 .../test/resources/core/Expression_21x.groovy   |     6 -
 .../src/test/resources/core/For_01.groovy       |    55 -
 .../src/test/resources/core/For_02.groovy       |    36 -
 .../src/test/resources/core/For_03.groovy       |    37 -
 .../src/test/resources/core/GString_01.groovy   |    30 -
 .../src/test/resources/core/GString_02.groovy   |    59 -
 .../src/test/resources/core/GString_03.groovy   |    49 -
 .../test/resources/core/IdenticalOp_01x.groovy  |    10 -
 .../src/test/resources/core/IfElse_01.groovy    |    44 -
 .../resources/core/ImportDeclaration_01.groovy  |     1 -
 .../resources/core/ImportDeclaration_02.groovy  |     1 -
 .../resources/core/ImportDeclaration_03.groovy  |     4 -
 .../resources/core/ImportDeclaration_04.groovy  |     5 -
 .../resources/core/ImportDeclaration_05.groovy  |     1 -
 .../resources/core/ImportDeclaration_06.groovy  |     3 -
 .../resources/core/ImportDeclaration_07.groovy  |     6 -
 .../resources/core/ImportDeclaration_08.groovy  |    28 -
 .../core/InterfaceDeclaration_01.groovy         |    36 -
 .../core/InterfaceDeclaration_02.groovy         |    42 -
 .../core/InterfaceDeclaration_03.groovy         |     7 -
 .../src/test/resources/core/Label_01.groovy     |    15 -
 .../src/test/resources/core/Lambda_01x.groovy   |    47 -
 .../src/test/resources/core/List_01.groovy      |    15 -
 .../src/test/resources/core/Literal_01.groovy   |    79 -
 .../src/test/resources/core/Literal_02.groovy   |    48 -
 .../src/test/resources/core/Literal_03.groovy   |     3 -
 .../core/LocalVariableDeclaration_01.groovy     |   110 -
 .../src/test/resources/core/Map_01.groovy       |    29 -
 .../resources/core/MethodDeclaration_01.groovy  |    32 -
 .../resources/core/MethodDeclaration_02.groovy  |    41 -
 .../resources/core/MethodPointer_01x.groovy     |     5 -
 .../resources/core/MethodReference_01x.groovy   |    85 -
 .../core/NegativeRelationalOperators_01x.groovy |    21 -
 .../core/NegativeRelationalOperators_02x.groovy |    18 -
 .../resources/core/PackageDeclaration_01.groovy |     1 -
 .../resources/core/PackageDeclaration_02.groovy |     1 -
 .../resources/core/PackageDeclaration_03.groovy |     1 -
 .../resources/core/PackageDeclaration_04.groovy |    20 -
 .../resources/core/PackageDeclaration_05.groovy |    23 -
 .../resources/core/PackageDeclaration_06.groovy |     1 -
 .../src/test/resources/core/Return_01.groovy    |     8 -
 .../test/resources/core/SafeIndex_01x.groovy    |    10 -
 .../test/resources/core/SafeIndex_02x.groovy    |    47 -
 .../test/resources/core/SafeIndex_03x.groovy    |   280 -
 .../src/test/resources/core/Switch_01.groovy    |    60 -
 .../test/resources/core/Synchronized_01.groovy  |    36 -
 .../src/test/resources/core/Throw_01.groovy     |     2 -
 .../resources/core/TraitDeclaration_01.groovy   |    42 -
 .../resources/core/TraitDeclaration_02.groovy   |    40 -
 .../resources/core/TraitDeclaration_03.groovy   |    48 -
 .../resources/core/TraitDeclaration_04.groovy   |    28 -
 .../resources/core/TraitDeclaration_05.groovy   |    23 -
 .../src/test/resources/core/TryCatch_01.groovy  |   112 -
 .../resources/core/TryWithResources_01x.groovy  |   266 -
 .../src/test/resources/core/Unicode_01.groovy   |    24 -
 .../src/test/resources/core/While_01.groovy     |    58 -
 .../src/test/resources/core/While_02x.groovy    |     5 -
 .../resources/fail/AbstractMethod_01x.groovy    |     3 -
 .../resources/fail/AbstractMethod_02x.groovy    |     4 -
 .../resources/fail/AbstractMethod_03x.groovy    |     3 -
 .../resources/fail/AbstractMethod_04x.groovy    |     1 -
 .../resources/fail/AbstractMethod_05x.groovy    |     1 -
 .../resources/fail/AbstractMethod_06x.groovy    |     1 -
 .../src/test/resources/fail/Break_01x.groovy    |     1 -
 .../src/test/resources/fail/Break_02x.groovy    |     3 -
 .../src/test/resources/fail/Continue_01x.groovy |     1 -
 .../src/test/resources/fail/Continue_02x.groovy |     3 -
 .../src/test/resources/fail/DoWhile_01x.groovy  |     4 -
 .../test/resources/fail/Expression_01.groovy    |     1 -
 .../test/resources/fail/Expression_02.groovy    |     1 -
 .../test/resources/fail/Expression_03.groovy    |     1 -
 .../test/resources/fail/Expression_04.groovy    |     1 -
 .../test/resources/fail/Expression_05.groovy    |     1 -
 .../test/resources/fail/Expression_06.groovy    |     1 -
 .../test/resources/fail/Expression_07.groovy    |     1 -
 .../test/resources/fail/Expression_08.groovy    |     1 -
 .../test/resources/fail/Expression_09.groovy    |     1 -
 .../src/test/resources/fail/List_01.groovy      |     1 -
 .../fail/LocalVariableDeclaration_01.groovy     |     1 -
 .../resources/fail/ParExpression_01x.groovy     |     1 -
 .../resources/fail/ParExpression_02x.groovy     |     1 -
 .../resources/fail/ParExpression_03x.groovy     |     1 -
 .../test/resources/fail/Parentheses_01.groovy   |     2 -
 .../src/test/resources/fail/Super_01x.groovy    |     6 -
 .../src/test/resources/fail/Switch_01.groovy    |     9 -
 .../src/test/resources/fail/This_01x.groovy     |     8 -
 .../fail/UnexpectedCharacter_01x.groovy         |     1 -
 .../src/test/resources/geb-1.0/allsources.txt   |   409 -
 .../resources/geb-1.0/geb-1.0-allsources.zip    |   Bin 503324 -> 0 bytes
 .../test/resources/gradle-3.1/allsources.txt    |  3963 ----
 .../gradle-3.1/gradle-3.1-allsources.zip        |   Bin 5966721 -> 0 bytes
 .../test/resources/grails-3.2.0/allsources.txt  |  1150 --
 .../grails-3.2.0/grails-3.2.0-allsources.zip    |   Bin 1674411 -> 0 bytes
 .../test/resources/groovy-2.5.0/allscripts.txt  |  2744 ---
 .../test/resources/groovy-2.5.0/allsources.txt  |  1844 --
 ...roovy-2.5.0-SNAPSHOT-20160921-allscripts.zip |   Bin 1071812 -> 0 bytes
 ...roovy-2.5.0-SNAPSHOT-20160921-allsources.zip |   Bin 2711417 -> 0 bytes
 .../spock-spock-1.1-rc-2/allsources.txt         |   294 -
 .../spock-spock-1.1-rc-2-allsources.zip         |   Bin 338519 -> 0 bytes
 subprojects/groovy-parser-antlr4/README.md      |    18 +
 subprojects/groovy-parser-antlr4/build.gradle   |    59 +
 .../apache/groovy/parser/antlr4/GroovyLexer.g4  |   858 +
 .../apache/groovy/parser/antlr4/GroovyParser.g4 |  1213 ++
 .../groovy/parser/antlr4/Java.g4.v20160306.zip  |   Bin 0 -> 5805 bytes
 .../parser/antlr4/util/GroovyTestRig.groovy     |    74 +
 .../apache/groovy/parser/AbstractParser.java    |    83 +
 .../org/apache/groovy/parser/Antlr2Parser.java  |    34 +
 .../org/apache/groovy/parser/Antlr4Parser.java  |    39 +
 .../groovy/parser/antlr4/AbstractLexer.java     |    32 +
 .../groovy/parser/antlr4/AbstractParser.java    |    32 +
 .../parser/antlr4/Antlr4ParserPlugin.java       |    45 +
 .../parser/antlr4/Antlr4PluginFactory.java      |    17 +
 .../apache/groovy/parser/antlr4/AstBuilder.java |  4742 +++++
 .../groovy/parser/antlr4/GroovyLangLexer.java   |    45 +
 .../groovy/parser/antlr4/GroovyLangParser.java  |    38 +
 .../groovy/parser/antlr4/GroovySyntaxError.java |    42 +
 .../parser/antlr4/SemanticPredicates.java       |   108 +
 .../parser/antlr4/SyntaxErrorReportable.java    |    38 +
 .../TryWithResourcesASTTransformation.java      |   352 +
 .../parser/antlr4/internal/AtnManager.java      |   107 +
 .../internal/DescriptiveErrorStrategy.java      |   110 +
 .../groovy/parser/antlr4/util/StringUtils.java  |   145 +
 .../parser/antlr4/Geb10SourcesTest.groovy       |  1684 ++
 .../parser/antlr4/Gradle310SourcesTest.groovy   | 15941 +++++++++++++++++
 .../parser/antlr4/Grails320SourcesTest.groovy   |  4648 +++++
 .../parser/antlr4/Groovy250ScriptsTest.groovy   | 11081 ++++++++++++
 .../parser/antlr4/Groovy250SourcesTest.groovy   |  7427 ++++++++
 .../parser/antlr4/GroovyParserTest.groovy       |   324 +
 .../parser/antlr4/Spock11RC2SourcesTest.groovy  |  1224 ++
 .../groovy/parser/antlr4/SyntaxErrorTest.groovy |   136 +
 .../groovy/parser/antlr4/TestUtils.groovy       |   259 +
 .../antlr4/util/ASTComparatorCategory.groovy    |   526 +
 .../groovy/parser/antlr4/util/AstDumper.groovy  |  1025 ++
 .../core/AnnotationDeclaration_01.groovy        |    39 +
 .../test/resources/core/Annotation_01.groovy    |     1 +
 .../test/resources/core/Annotation_02.groovy    |     2 +
 .../test/resources/core/Annotation_03.groovy    |     3 +
 .../test/resources/core/Annotation_04.groovy    |     2 +
 .../test/resources/core/Annotation_05.groovy    |     1 +
 .../test/resources/core/Annotation_06.groovy    |     2 +
 .../test/resources/core/Annotation_07.groovy    |     2 +
 .../test/resources/core/Annotation_08.groovy    |    10 +
 .../test/resources/core/Annotation_09.groovy    |    14 +
 .../test/resources/core/Annotation_10x.groovy   |    20 +
 .../src/test/resources/core/Assert_01.groovy    |    28 +
 .../src/test/resources/core/Assert_02x.groovy   |    37 +
 .../src/test/resources/core/Assert_03x.groovy   |    26 +
 .../resources/core/ClassDeclaration_01.groovy   |    47 +
 .../resources/core/ClassDeclaration_02.groovy   |    42 +
 .../resources/core/ClassDeclaration_03.groovy   |    51 +
 .../resources/core/ClassDeclaration_04.groovy   |    22 +
 .../resources/core/ClassDeclaration_05.groovy   |    20 +
 .../resources/core/ClassDeclaration_06.groovy   |    83 +
 .../resources/core/ClassDeclaration_07.groovy   |    27 +
 .../src/test/resources/core/Closure_01.groovy   |     1 +
 .../src/test/resources/core/Closure_02.groovy   |     1 +
 .../src/test/resources/core/Closure_03.groovy   |     1 +
 .../src/test/resources/core/Closure_04.groovy   |     3 +
 .../src/test/resources/core/Closure_05.groovy   |     3 +
 .../src/test/resources/core/Closure_06.groovy   |     9 +
 .../src/test/resources/core/Closure_07.groovy   |     3 +
 .../src/test/resources/core/Closure_08.groovy   |    16 +
 .../src/test/resources/core/Closure_09.groovy   |    16 +
 .../src/test/resources/core/Closure_10.groovy   |     4 +
 .../src/test/resources/core/Command_01.groovy   |    14 +
 .../src/test/resources/core/Command_02.groovy   |    11 +
 .../src/test/resources/core/Command_03.groovy   |    66 +
 .../src/test/resources/core/Command_04.groovy   |     7 +
 .../src/test/resources/core/Command_05.groovy   |    59 +
 .../src/test/resources/core/Command_06x.groovy  |     8 +
 .../src/test/resources/core/Comments_01.groovy  |    28 +
 .../src/test/resources/core/Comments_02.groovy  |   117 +
 .../resources/core/DefaultMethod_01x.groovy     |    21 +
 .../resources/core/DefaultMethod_02x.groovy     |    36 +
 .../src/test/resources/core/DoWhile_01x.groovy  |     7 +
 .../src/test/resources/core/DoWhile_02x.groovy  |     8 +
 .../src/test/resources/core/DoWhile_03x.groovy  |    11 +
 .../src/test/resources/core/DoWhile_04x.groovy  |    14 +
 .../resources/core/ElvisAssignment_01x.groovy   |    38 +
 .../resources/core/EnumDeclaration_01.groovy    |    44 +
 .../resources/core/EnumDeclaration_02.groovy    |    52 +
 .../resources/core/EnumDeclaration_03.groovy    |     6 +
 .../test/resources/core/Expression_01.groovy    |   230 +
 .../test/resources/core/Expression_02.groovy    |     6 +
 .../test/resources/core/Expression_03.groovy    |    31 +
 .../test/resources/core/Expression_04.groovy    |    62 +
 .../test/resources/core/Expression_05.groovy    |    40 +
 .../test/resources/core/Expression_06.groovy    |     6 +
 .../test/resources/core/Expression_07.groovy    |     9 +
 .../test/resources/core/Expression_08.groovy    |     6 +
 .../test/resources/core/Expression_09.groovy    |    16 +
 .../test/resources/core/Expression_10.groovy    |    25 +
 .../test/resources/core/Expression_11.groovy    |    16 +
 .../test/resources/core/Expression_12.groovy    |    17 +
 .../test/resources/core/Expression_13.groovy    |    45 +
 .../test/resources/core/Expression_14.groovy    |    22 +
 .../test/resources/core/Expression_15.groovy    |   127 +
 .../test/resources/core/Expression_16.groovy    |    22 +
 .../test/resources/core/Expression_17.groovy    |   141 +
 .../test/resources/core/Expression_18.groovy    |    26 +
 .../test/resources/core/Expression_19.groovy    |    32 +
 .../test/resources/core/Expression_20.groovy    |     2 +
 .../test/resources/core/Expression_21x.groovy   |     6 +
 .../src/test/resources/core/For_01.groovy       |    55 +
 .../src/test/resources/core/For_02.groovy       |    36 +
 .../src/test/resources/core/For_03.groovy       |    37 +
 .../src/test/resources/core/GString_01.groovy   |    30 +
 .../src/test/resources/core/GString_02.groovy   |    59 +
 .../src/test/resources/core/GString_03.groovy   |    49 +
 .../test/resources/core/IdenticalOp_01x.groovy  |    10 +
 .../src/test/resources/core/IfElse_01.groovy    |    44 +
 .../resources/core/ImportDeclaration_01.groovy  |     1 +
 .../resources/core/ImportDeclaration_02.groovy  |     1 +
 .../resources/core/ImportDeclaration_03.groovy  |     4 +
 .../resources/core/ImportDeclaration_04.groovy  |     5 +
 .../resources/core/ImportDeclaration_05.groovy  |     1 +
 .../resources/core/ImportDeclaration_06.groovy  |     3 +
 .../resources/core/ImportDeclaration_07.groovy  |     6 +
 .../resources/core/ImportDeclaration_08.groovy  |    28 +
 .../core/InterfaceDeclaration_01.groovy         |    36 +
 .../core/InterfaceDeclaration_02.groovy         |    42 +
 .../core/InterfaceDeclaration_03.groovy         |     7 +
 .../src/test/resources/core/Label_01.groovy     |    15 +
 .../src/test/resources/core/Lambda_01x.groovy   |    47 +
 .../src/test/resources/core/List_01.groovy      |    15 +
 .../src/test/resources/core/Literal_01.groovy   |    79 +
 .../src/test/resources/core/Literal_02.groovy   |    48 +
 .../src/test/resources/core/Literal_03.groovy   |     3 +
 .../core/LocalVariableDeclaration_01.groovy     |   110 +
 .../src/test/resources/core/Map_01.groovy       |    29 +
 .../resources/core/MethodDeclaration_01.groovy  |    32 +
 .../resources/core/MethodDeclaration_02.groovy  |    41 +
 .../resources/core/MethodPointer_01x.groovy     |     5 +
 .../resources/core/MethodReference_01x.groovy   |    85 +
 .../core/NegativeRelationalOperators_01x.groovy |    21 +
 .../core/NegativeRelationalOperators_02x.groovy |    18 +
 .../resources/core/PackageDeclaration_01.groovy |     1 +
 .../resources/core/PackageDeclaration_02.groovy |     1 +
 .../resources/core/PackageDeclaration_03.groovy |     1 +
 .../resources/core/PackageDeclaration_04.groovy |    20 +
 .../resources/core/PackageDeclaration_05.groovy |    23 +
 .../resources/core/PackageDeclaration_06.groovy |     1 +
 .../src/test/resources/core/Return_01.groovy    |     8 +
 .../test/resources/core/SafeIndex_01x.groovy    |    10 +
 .../test/resources/core/SafeIndex_02x.groovy    |    47 +
 .../test/resources/core/SafeIndex_03x.groovy    |   280 +
 .../src/test/resources/core/Switch_01.groovy    |    60 +
 .../test/resources/core/Synchronized_01.groovy  |    36 +
 .../src/test/resources/core/Throw_01.groovy     |     2 +
 .../resources/core/TraitDeclaration_01.groovy   |    42 +
 .../resources/core/TraitDeclaration_02.groovy   |    40 +
 .../resources/core/TraitDeclaration_03.groovy   |    48 +
 .../resources/core/TraitDeclaration_04.groovy   |    28 +
 .../resources/core/TraitDeclaration_05.groovy   |    23 +
 .../src/test/resources/core/TryCatch_01.groovy  |   112 +
 .../resources/core/TryWithResources_01x.groovy  |   266 +
 .../src/test/resources/core/Unicode_01.groovy   |    24 +
 .../src/test/resources/core/While_01.groovy     |    58 +
 .../src/test/resources/core/While_02x.groovy    |     5 +
 .../resources/fail/AbstractMethod_01x.groovy    |     3 +
 .../resources/fail/AbstractMethod_02x.groovy    |     4 +
 .../resources/fail/AbstractMethod_03x.groovy    |     3 +
 .../resources/fail/AbstractMethod_04x.groovy    |     1 +
 .../resources/fail/AbstractMethod_05x.groovy    |     1 +
 .../resources/fail/AbstractMethod_06x.groovy    |     1 +
 .../src/test/resources/fail/Break_01x.groovy    |     1 +
 .../src/test/resources/fail/Break_02x.groovy    |     3 +
 .../src/test/resources/fail/Continue_01x.groovy |     1 +
 .../src/test/resources/fail/Continue_02x.groovy |     3 +
 .../src/test/resources/fail/DoWhile_01x.groovy  |     4 +
 .../test/resources/fail/Expression_01.groovy    |     1 +
 .../test/resources/fail/Expression_02.groovy    |     1 +
 .../test/resources/fail/Expression_03.groovy    |     1 +
 .../test/resources/fail/Expression_04.groovy    |     1 +
 .../test/resources/fail/Expression_05.groovy    |     1 +
 .../test/resources/fail/Expression_06.groovy    |     1 +
 .../test/resources/fail/Expression_07.groovy    |     1 +
 .../test/resources/fail/Expression_08.groovy    |     1 +
 .../test/resources/fail/Expression_09.groovy    |     1 +
 .../src/test/resources/fail/List_01.groovy      |     1 +
 .../fail/LocalVariableDeclaration_01.groovy     |     1 +
 .../resources/fail/ParExpression_01x.groovy     |     1 +
 .../resources/fail/ParExpression_02x.groovy     |     1 +
 .../resources/fail/ParExpression_03x.groovy     |     1 +
 .../test/resources/fail/Parentheses_01.groovy   |     2 +
 .../src/test/resources/fail/Super_01x.groovy    |     6 +
 .../src/test/resources/fail/Switch_01.groovy    |     9 +
 .../src/test/resources/fail/This_01x.groovy     |     8 +
 .../fail/UnexpectedCharacter_01x.groovy         |     1 +
 .../src/test/resources/geb-1.0/allsources.txt   |   409 +
 .../resources/geb-1.0/geb-1.0-allsources.zip    |   Bin 0 -> 503324 bytes
 .../test/resources/gradle-3.1/allsources.txt    |  3963 ++++
 .../gradle-3.1/gradle-3.1-allsources.zip        |   Bin 0 -> 5966721 bytes
 .../test/resources/grails-3.2.0/allsources.txt  |  1150 ++
 .../grails-3.2.0/grails-3.2.0-allsources.zip    |   Bin 0 -> 1674411 bytes
 .../test/resources/groovy-2.5.0/allscripts.txt  |  2744 +++
 .../test/resources/groovy-2.5.0/allsources.txt  |  1844 ++
 ...roovy-2.5.0-SNAPSHOT-20160921-allscripts.zip |   Bin 0 -> 1071812 bytes
 ...roovy-2.5.0-SNAPSHOT-20160921-allsources.zip |   Bin 0 -> 2711417 bytes
 .../spock-spock-1.1-rc-2/allsources.txt         |   294 +
 .../spock-spock-1.1-rc-2-allsources.zip         |   Bin 0 -> 338519 bytes
 405 files changed, 67084 insertions(+), 67084 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/groovy/blob/fc23a2ed/build.gradle
----------------------------------------------------------------------
diff --git a/build.gradle b/build.gradle
index d6b5e27..bc6a31d 100644
--- a/build.gradle
+++ b/build.gradle
@@ -310,7 +310,7 @@ sourceSets {
     }
 }
 
-apply from: 'subprojects/groovy-antlr4-grammar/build.gradle'
+apply from: 'subprojects/groovy-parser-antlr4/build.gradle'
 
 // make sure examples can be compiled, even if we don't run them
 // todo: reorganize examples so that we can run them too

http://git-wip-us.apache.org/repos/asf/groovy/blob/fc23a2ed/subprojects/groovy-antlr4-grammar/README.md
----------------------------------------------------------------------
diff --git a/subprojects/groovy-antlr4-grammar/README.md b/subprojects/groovy-antlr4-grammar/README.md
deleted file mode 100644
index f209c08..0000000
--- a/subprojects/groovy-antlr4-grammar/README.md
+++ /dev/null
@@ -1,18 +0,0 @@
-This is the home of the Parrot parser, which is based on antlr4.
-
-In the gradle build the property useAntlr4 has to be set to enable the build of the parser and the execution of all tests with it.
-
-Command line example:
-`./gradlew -PuseAntlr4=true bootstrapJar`
-
-To enable the new parser automatically at runtime the system property groovy.antlr4 has to be set.
-
-Command line example:
-```
-export JAVA_OPTS="-Dgroovy.antlr4=true"
-groovy foo.groovy
-```
-
-This system property also controls groovyc and has to be used in case it is used outside of this build, for example with:
-
-`groovyOptions.forkOptions.jvmArgs += ["-Dgroovy.antlr4=true"]`

http://git-wip-us.apache.org/repos/asf/groovy/blob/fc23a2ed/subprojects/groovy-antlr4-grammar/build.gradle
----------------------------------------------------------------------
diff --git a/subprojects/groovy-antlr4-grammar/build.gradle b/subprojects/groovy-antlr4-grammar/build.gradle
deleted file mode 100644
index 6ec2896..0000000
--- a/subprojects/groovy-antlr4-grammar/build.gradle
+++ /dev/null
@@ -1,59 +0,0 @@
-if (!rootProject.hasProperty('useAntlr4')) return
-
-apply plugin: 'me.champeau.gradle.antlr4'
-
-def srcBase = "subprojects/groovy-antlr4-grammar/src"
-def srcMain = "$srcBase/main"
-def srcTest = "$srcBase/test"
-def antlr4Source = "$srcMain/antlr4"
-def antlr4OutputRootDir = "$buildDir/generated-sources"
-def antlr4Output = "$antlr4OutputRootDir/org/apache/groovy/parser/antlr4"
-
-// set package for antlr generated classes
-antlr4 {
-    source = file(antlr4Source)
-    extraArgs = ["-no-listener", "-package", "org.apache.groovy.parser.antlr4"]
-    output = file(antlr4Output)
-}
-
-// make the Java compile task depend on the antlr4 task
-compileJava.dependsOn antlr4
-
-// add antlr4 to classpath
-configurations {
-   compile.extendsFrom antlr4
-}
-
-dependencies {
-    antlr4 "com.tunnelvisionlabs:antlr4:$antlr4Version"
-    testCompile project(':groovy-test')
-}
-
-
-task cleanGeneratedSources(type: Delete) {
-    delete antlr4OutputRootDir
-    file(antlr4OutputRootDir).mkdirs()
-}
-
-antlr4.dependsOn cleanGeneratedSources
-
-// add the generated source files to the list of java sources
-sourceSets.main.java.srcDirs += file("$antlr4OutputRootDir");
-sourceSets.main.java.srcDirs += file("$srcMain/java");
-sourceSets.main.groovy.srcDirs += file("$srcMain/groovy");
-sourceSets.main.resources.srcDirs += file("$antlr4Source");
-sourceSets.main.resources.srcDirs += file("$srcMain/resources");
-sourceSets.test.java.srcDirs += file("$srcTest/java");
-sourceSets.test.groovy.srcDirs += file("$srcTest/groovy");
-sourceSets.test.resources.srcDirs += file("$srcTest/resources");
-
-
-allprojects {
-   tasks.withType(GroovyCompile) {
-        groovyOptions.forkOptions.jvmArgs += ["-Dgroovy.antlr4=true"]
-    }
-}
-
-test {
-    jvmArgs "-Dgroovy.extract.doc.comment=true", "-Dgroovy.antlr4.cache.threshold=100"
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/groovy/blob/fc23a2ed/subprojects/groovy-antlr4-grammar/src/main/antlr4/org/apache/groovy/parser/antlr4/GroovyLexer.g4
----------------------------------------------------------------------
diff --git a/subprojects/groovy-antlr4-grammar/src/main/antlr4/org/apache/groovy/parser/antlr4/GroovyLexer.g4 b/subprojects/groovy-antlr4-grammar/src/main/antlr4/org/apache/groovy/parser/antlr4/GroovyLexer.g4
deleted file mode 100644
index 64d7a51..0000000
--- a/subprojects/groovy-antlr4-grammar/src/main/antlr4/org/apache/groovy/parser/antlr4/GroovyLexer.g4
+++ /dev/null
@@ -1,858 +0,0 @@
-/*
- [The "BSD licence"]
- Copyright (c) 2013 Terence Parr, Sam Harwell
- Copyright (c) 2016 Daniel Sun
- All rights reserved.
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
- 1. Redistributions of source code must retain the above copyright
-    notice, this list of conditions and the following disclaimer.
- 2. Redistributions in binary form must reproduce the above copyright
-    notice, this list of conditions and the following disclaimer in the
-    documentation and/or other materials provided with the distribution.
- 3. The name of the author may not be used to endorse or promote products
-    derived from this software without specific prior written permission.
- THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-/**
- * The Groovy grammar is based on the official grammar for Java(https://github.com/antlr/grammars-v4/blob/master/java/Java.g4)
- *
- * @author <a href="mailto:realbluesun@hotmail.com">Daniel.Sun</a>
- * Created on   2016/08/14
- *
- */
-lexer grammar GroovyLexer;
-
-options {
-    superClass = AbstractLexer;
-}
-
-@header {
-    import static org.apache.groovy.parser.antlr4.SemanticPredicates.*;
-    import java.util.Deque;
-    import java.util.ArrayDeque;
-    import java.util.Map;
-    import java.util.HashMap;
-    import java.util.Set;
-    import java.util.HashSet;
-    import java.util.Collections;
-    import java.util.Arrays;
-}
-
-@members {
-    private long tokenIndex     = 0;
-    private int  lastTokenType  = 0;
-
-    /**
-     * Record the index and token type of the current token while emitting tokens.
-     */
-    @Override
-    public void emit(Token token) {
-        this.tokenIndex++;
-
-        int tokenType = token.getType();
-        if (Token.DEFAULT_CHANNEL == token.getChannel()) {
-            this.lastTokenType = tokenType;
-        }
-
-        if (RollBackOne == tokenType) {
-            this.rollbackOneChar();
-        }
-
-        super.emit(token);
-    }
-
-    private static final Set<Integer> REGEX_CHECK_SET =
-                                            Collections.unmodifiableSet(
-                                                new HashSet<>(Arrays.asList(Identifier, CapitalizedIdentifier, NullLiteral, BooleanLiteral, THIS, RPAREN, RBRACK, RBRACE, IntegerLiteral, FloatingPointLiteral, StringLiteral, GStringEnd, INC, DEC)));
-    private boolean isRegexAllowed() {
-        if (REGEX_CHECK_SET.contains(this.lastTokenType)) {
-            return false;
-        }
-
-        return true;
-    }
-
-    /**
-     * just a hook, which will be overrided by GroovyLangLexer
-     */
-    protected void rollbackOneChar() {}
-
-    private static class Paren {
-        private String text;
-        private int lastTokenType;
-
-        public Paren(String text, int lastTokenType) {
-            this.text = text;
-            this.lastTokenType = lastTokenType;
-        }
-
-        public String getText() {
-            return this.text;
-        }
-
-        public int getLastTokenType() {
-            return this.lastTokenType;
-        }
-
-        @Override
-        public int hashCode() {
-            return text.hashCode();
-        }
-
-        @Override
-        public boolean equals(Object obj) {
-            if (!(obj instanceof Paren)) {
-                return false;
-            }
-
-            return this.text.equals(((Paren) obj).text);
-        }
-    }
-
-    private static final Map<String, String> PAREN_MAP = Collections.unmodifiableMap(new HashMap<String, String>() {
-        {
-            put("(", ")");
-            put("[", "]");
-            put("{", "}");
-        }
-    });
-
-    private final Deque<Paren> parenStack = new ArrayDeque<>(32);
-    private void enterParen() {
-        parenStack.push(new Paren(getText(), this.lastTokenType));
-    }
-    private void exitParen() {
-        Paren paren = parenStack.peek();
-
-        String text = getText();
-
-        require(null != paren, "Too many '" + text + "'");
-        require(text.equals(PAREN_MAP.get(paren.getText())), "'" + text + "' can not match '" + paren.getText() + "'");
-
-        parenStack.pop();
-    }
-    private boolean isInsideParens() {
-        Paren paren = parenStack.peek();
-
-        // We just care about "(" and "[", inside which the new lines will be ignored.
-        // Notice: the new lines between "{" and "}" can not be ignored.
-        if (null == paren) {
-            return false;
-        }
-        return ("(".equals(paren.getText()) && TRY != paren.getLastTokenType()) // we don't treat try-paren(i.e. try (....)) as parenthesis
-                    || "[".equals(paren.getText());
-    }
-    private void ignoreTokenInsideParens() {
-        if (!this.isInsideParens()) {
-            return;
-        }
-
-        this.setChannel(Token.HIDDEN_CHANNEL);
-    }
-    private void ignoreMultiLineCommentConditionally() {
-        if (!this.isInsideParens() && isFollowedByWhiteSpaces(_input)) {
-            return;
-        }
-
-        this.setChannel(Token.HIDDEN_CHANNEL);
-    }
-
-    @Override
-    public int getSyntaxErrorSource() {
-        return GroovySyntaxError.LEXER;
-    }
-
-    @Override
-    public String genPositionInfo() {
-        return " @ line " + getLine() + ", column " + (getCharPositionInLine() + 1);
-    }
-}
-
-
-// §3.10.5 String Literals
-
-StringLiteral
-    :   '"'      DqStringCharacter*?           '"'
-    |   '\''     SqStringCharacter*?           '\''
-
-    |   '/'      { this.isRegexAllowed() && _input.LA(1) != '*' }?
-                 SlashyStringCharacter+?       '/'
-
-    |   '"""'    TdqStringCharacter*?          '"""'
-    |   '\'\'\'' TsqStringCharacter*?          '\'\'\''
-    |   '$/'     DollarSlashyStringCharacter+? '/$'
-    ;
-
-// Groovy gstring
-GStringBegin
-    :   '"' DqStringCharacter*? DOLLAR -> pushMode(DQ_GSTRING_MODE), pushMode(GSTRING_TYPE_SELECTOR_MODE)
-    ;
-TdqGStringBegin
-    :   '"""'   TdqStringCharacter*? DOLLAR -> type(GStringBegin), pushMode(TDQ_GSTRING_MODE), pushMode(GSTRING_TYPE_SELECTOR_MODE)
-    ;
-SlashyGStringBegin
-    :   '/' { this.isRegexAllowed() && _input.LA(1) != '*' }? SlashyStringCharacter*? DOLLAR { isFollowedByJavaLetterInGString(_input) }? -> type(GStringBegin), pushMode(SLASHY_GSTRING_MODE), pushMode(GSTRING_TYPE_SELECTOR_MODE)
-    ;
-DollarSlashyGStringBegin
-    :   '$/' DollarSlashyStringCharacter*? DOLLAR { isFollowedByJavaLetterInGString(_input) }? -> type(GStringBegin), pushMode(DOLLAR_SLASHY_GSTRING_MODE), pushMode(GSTRING_TYPE_SELECTOR_MODE)
-    ;
-
-mode DQ_GSTRING_MODE;
-GStringEnd
-    :   '"'     -> popMode
-    ;
-GStringPart
-    :   DOLLAR  -> pushMode(GSTRING_TYPE_SELECTOR_MODE)
-    ;
-GStringCharacter
-    :   DqStringCharacter -> more
-    ;
-
-mode TDQ_GSTRING_MODE;
-TdqGStringEnd
-    :   '"""'    -> type(GStringEnd), popMode
-    ;
-TdqGStringPart
-    :   DOLLAR   -> type(GStringPart), pushMode(GSTRING_TYPE_SELECTOR_MODE)
-    ;
-TdqGStringCharacter
-    :   TdqStringCharacter -> more
-    ;
-
-mode SLASHY_GSTRING_MODE;
-SlashyGStringEnd
-    :   '$'? '/'  -> type(GStringEnd), popMode
-    ;
-SlashyGStringPart
-    :   DOLLAR { isFollowedByJavaLetterInGString(_input) }?   -> type(GStringPart), pushMode(GSTRING_TYPE_SELECTOR_MODE)
-    ;
-SlashyGStringCharacter
-    :   SlashyStringCharacter -> more
-    ;
-
-mode DOLLAR_SLASHY_GSTRING_MODE;
-DollarSlashyGStringEnd
-    :   '/$'      -> type(GStringEnd), popMode
-    ;
-DollarSlashyGStringPart
-    :   DOLLAR { isFollowedByJavaLetterInGString(_input) }?   -> type(GStringPart), pushMode(GSTRING_TYPE_SELECTOR_MODE)
-    ;
-DollarSlashyGStringCharacter
-    :   DollarSlashyStringCharacter -> more
-    ;
-
-mode GSTRING_TYPE_SELECTOR_MODE;
-GStringLBrace
-    :   '{' { this.enterParen();  } -> type(LBRACE), popMode, pushMode(DEFAULT_MODE)
-    ;
-GStringIdentifier
-    :   IdentifierInGString -> type(Identifier), popMode, pushMode(GSTRING_PATH_MODE)
-    ;
-
-
-mode GSTRING_PATH_MODE;
-GStringPathPart
-    :   '.' IdentifierInGString
-    ;
-RollBackOne
-    :   . -> popMode, channel(HIDDEN)
-    ;
-
-
-mode DEFAULT_MODE;
-// character in the double quotation string. e.g. "a"
-fragment
-DqStringCharacter
-    :   ~["\\$]
-    |   EscapeSequence
-    ;
-
-// character in the single quotation string. e.g. 'a'
-fragment
-SqStringCharacter
-    :   ~['\\]
-    |   EscapeSequence
-    ;
-
-// character in the triple double quotation string. e.g. """a"""
-fragment TdqStringCharacter
-    :   ~["\\$]
-    |   '"' { !(_input.LA(1) == '"' && _input.LA(2) == '"') }?
-    |   EscapeSequence
-    ;
-
-// character in the triple single quotation string. e.g. '''a'''
-fragment TsqStringCharacter
-    :   ~['\\]
-    |   '\'' { !(_input.LA(1) == '\'' && _input.LA(2) == '\'') }?
-    |   EscapeSequence
-    ;
-
-// character in the slashy string. e.g. /a/
-fragment SlashyStringCharacter
-    :   SlashEscape
-    |   '$' { !isFollowedByJavaLetterInGString(_input) }?
-    |   ~[/$\u0000]
-    ;
-
-// character in the collar slashy string. e.g. $/a/$
-fragment DollarSlashyStringCharacter
-    :   SlashEscape | DollarSlashEscape | DollarDollarEscape
-    |   '/' { _input.LA(1) != '$' }?
-    |   '$' { !isFollowedByJavaLetterInGString(_input) }?
-    |   ~[/$\u0000]
-    ;
-
-// Groovy keywords
-AS              : 'as';
-DEF             : 'def';
-IN              : 'in';
-TRAIT           : 'trait';
-THREADSAFE      : 'threadsafe';
-
-
-// §3.9 Keywords
-BuiltInPrimitiveType
-    :   BOOLEAN
-    |   CHAR
-    |   BYTE
-    |   SHORT
-    |   INT
-    |   LONG
-    |   FLOAT
-    |   DOUBLE
-    ;
-
-ABSTRACT      : 'abstract';
-ASSERT        : 'assert';
-
-fragment
-BOOLEAN       : 'boolean';
-
-BREAK         : 'break';
-
-fragment
-BYTE          : 'byte';
-
-CASE          : 'case';
-CATCH         : 'catch';
-
-fragment
-CHAR          : 'char';
-
-CLASS         : 'class';
-CONST         : 'const';
-CONTINUE      : 'continue';
-DEFAULT       : 'default';
-DO            : 'do';
-
-fragment
-DOUBLE        : 'double';
-
-ELSE          : 'else';
-ENUM          : 'enum';
-EXTENDS       : 'extends';
-FINAL         : 'final';
-FINALLY       : 'finally';
-
-fragment
-FLOAT         : 'float';
-
-
-FOR           : 'for';
-IF            : 'if';
-GOTO          : 'goto';
-IMPLEMENTS    : 'implements';
-IMPORT        : 'import';
-INSTANCEOF    : 'instanceof';
-
-fragment
-INT           : 'int';
-
-INTERFACE     : 'interface';
-
-fragment
-LONG          : 'long';
-
-NATIVE        : 'native';
-NEW           : 'new';
-PACKAGE       : 'package';
-PRIVATE       : 'private';
-PROTECTED     : 'protected';
-PUBLIC        : 'public';
-RETURN        : 'return';
-
-fragment
-SHORT         : 'short';
-
-
-STATIC        : 'static';
-STRICTFP      : 'strictfp';
-SUPER         : 'super';
-SWITCH        : 'switch';
-SYNCHRONIZED  : 'synchronized';
-THIS          : 'this';
-THROW         : 'throw';
-THROWS        : 'throws';
-TRANSIENT     : 'transient';
-TRY           : 'try';
-VOID          : 'void';
-VOLATILE      : 'volatile';
-WHILE         : 'while';
-
-
-// §3.10.1 Integer Literals
-
-IntegerLiteral
-    :   DecimalIntegerLiteral
-    |   HexIntegerLiteral
-    |   OctalIntegerLiteral
-    |   BinaryIntegerLiteral
-    ;
-
-fragment
-DecimalIntegerLiteral
-    :   DecimalNumeral IntegerTypeSuffix?
-    ;
-
-fragment
-HexIntegerLiteral
-    :   HexNumeral IntegerTypeSuffix?
-    ;
-
-fragment
-OctalIntegerLiteral
-    :   OctalNumeral IntegerTypeSuffix?
-    ;
-
-fragment
-BinaryIntegerLiteral
-    :   BinaryNumeral IntegerTypeSuffix?
-    ;
-
-fragment
-IntegerTypeSuffix
-    :   [lLiIgG]
-    ;
-
-fragment
-DecimalNumeral
-    :   '0'
-    |   NonZeroDigit (Digits? | Underscores Digits)
-    ;
-
-fragment
-Digits
-    :   Digit (DigitOrUnderscore* Digit)?
-    ;
-
-fragment
-Digit
-    :   '0'
-    |   NonZeroDigit
-    ;
-
-fragment
-NonZeroDigit
-    :   [1-9]
-    ;
-
-fragment
-DigitOrUnderscore
-    :   Digit
-    |   '_'
-    ;
-
-fragment
-Underscores
-    :   '_'+
-    ;
-
-fragment
-HexNumeral
-    :   '0' [xX] HexDigits
-    ;
-
-fragment
-HexDigits
-    :   HexDigit (HexDigitOrUnderscore* HexDigit)?
-    ;
-
-fragment
-HexDigit
-    :   [0-9a-fA-F]
-    ;
-
-fragment
-HexDigitOrUnderscore
-    :   HexDigit
-    |   '_'
-    ;
-
-fragment
-OctalNumeral
-    :   '0' Underscores? OctalDigits
-    ;
-
-fragment
-OctalDigits
-    :   OctalDigit (OctalDigitOrUnderscore* OctalDigit)?
-    ;
-
-fragment
-OctalDigit
-    :   [0-7]
-    ;
-
-fragment
-OctalDigitOrUnderscore
-    :   OctalDigit
-    |   '_'
-    ;
-
-fragment
-BinaryNumeral
-    :   '0' [bB] BinaryDigits
-    ;
-
-fragment
-BinaryDigits
-    :   BinaryDigit (BinaryDigitOrUnderscore* BinaryDigit)?
-    ;
-
-fragment
-BinaryDigit
-    :   [01]
-    ;
-
-fragment
-BinaryDigitOrUnderscore
-    :   BinaryDigit
-    |   '_'
-    ;
-
-// §3.10.2 Floating-Point Literals
-
-FloatingPointLiteral
-    :   DecimalFloatingPointLiteral
-    |   HexadecimalFloatingPointLiteral
-    ;
-
-fragment
-DecimalFloatingPointLiteral
-    :   Digits '.' Digits ExponentPart? FloatTypeSuffix?
-    |   Digits ExponentPart FloatTypeSuffix?
-    |   Digits FloatTypeSuffix
-    ;
-
-fragment
-ExponentPart
-    :   ExponentIndicator SignedInteger
-    ;
-
-fragment
-ExponentIndicator
-    :   [eE]
-    ;
-
-fragment
-SignedInteger
-    :   Sign? Digits
-    ;
-
-fragment
-Sign
-    :   [+-]
-    ;
-
-fragment
-FloatTypeSuffix
-    :   [fFdDgG]
-    ;
-
-fragment
-HexadecimalFloatingPointLiteral
-    :   HexSignificand BinaryExponent FloatTypeSuffix?
-    ;
-
-fragment
-HexSignificand
-    :   HexNumeral '.'?
-    |   '0' [xX] HexDigits? '.' HexDigits
-    ;
-
-fragment
-BinaryExponent
-    :   BinaryExponentIndicator SignedInteger
-    ;
-
-fragment
-BinaryExponentIndicator
-    :   [pP]
-    ;
-
-// §3.10.3 Boolean Literals
-
-BooleanLiteral
-    :   'true'
-    |   'false'
-    ;
-
-
-// §3.10.6 Escape Sequences for Character and String Literals
-
-fragment
-EscapeSequence
-    :   '\\' [btnfr"'\\]
-    |   OctalEscape
-    |   UnicodeEscape
-    |   DollarEscape
-    |   LineEscape
-    ;
-
-
-fragment
-OctalEscape
-    :   '\\' OctalDigit
-    |   '\\' OctalDigit OctalDigit
-    |   '\\' ZeroToThree OctalDigit OctalDigit
-    ;
-
-// Groovy allows 1 or more u's after the backslash
-fragment
-UnicodeEscape
-    :   '\\' 'u'+ HexDigit HexDigit HexDigit HexDigit
-    ;
-
-fragment
-ZeroToThree
-    :   [0-3]
-    ;
-
-// Groovy Escape Sequences
-
-fragment
-DollarEscape
-    :   '\\' DOLLAR
-    ;
-
-fragment
-LineEscape
-    :   '\\' '\r'? '\n'
-    ;
-
-fragment
-SlashEscape
-    :   '\\' '/'
-    ;
-
-fragment
-DollarSlashEscape
-    :   '$/$'
-    ;
-
-fragment
-DollarDollarEscape
-    :   '$$'
-    ;
-// §3.10.7 The Null Literal
-
-NullLiteral
-    :   'null'
-    ;
-
-// Groovy Operators
-
-RANGE_INCLUSIVE     : '..';
-RANGE_EXCLUSIVE     : '..<';
-SPREAD_DOT          : '*.';
-SAFE_DOT            : '?.';
-ELVIS               : '?:';
-METHOD_POINTER      : '.&';
-METHOD_REFERENCE    : '::';
-REGEX_FIND          : '=~';
-REGEX_MATCH         : '==~';
-POWER               : '**';
-POWER_ASSIGN        : '**=';
-SPACESHIP           : '<=>';
-IDENTICAL           : '===';
-NOT_IDENTICAL       : '!==';
-ARROW               : '->';
-
-// !internalPromise will be parsed as !in ternalPromise, so semantic predicates are necessary
-NOT_INSTANCEOF      : '!instanceof' { isFollowedBy(_input, ' ', '\t', '\r', '\n') }?;
-NOT_IN              : '!in'         { isFollowedBy(_input, ' ', '\t', '\r', '\n', '[', '(', '{') }?;
-
-fragment
-DOLLAR              : '$';
-
-
-// §3.11 Separators
-
-LPAREN          : '('  { this.enterParen();     } -> pushMode(DEFAULT_MODE);
-RPAREN          : ')'  { this.exitParen();      } -> popMode;
-LBRACE          : '{'  { this.enterParen();     } -> pushMode(DEFAULT_MODE);
-RBRACE          : '}'  { this.exitParen();      } -> popMode;
-LBRACK          : '['  { this.enterParen();     } -> pushMode(DEFAULT_MODE);
-RBRACK          : ']'  { this.exitParen();      } -> popMode;
-
-SEMI            : ';';
-COMMA           : ',';
-DOT             : '.';
-
-// §3.12 Operators
-
-ASSIGN          : '=';
-GT              : '>';
-LT              : '<';
-NOT             : '!';
-BITNOT          : '~';
-QUESTION        : '?';
-COLON           : ':';
-EQUAL           : '==';
-LE              : '<=';
-GE              : '>=';
-NOTEQUAL        : '!=';
-AND             : '&&';
-OR              : '||';
-INC             : '++';
-DEC             : '--';
-ADD             : '+';
-SUB             : '-';
-MUL             : '*';
-DIV             : '/';
-BITAND          : '&';
-BITOR           : '|';
-XOR             : '^';
-MOD             : '%';
-
-
-ADD_ASSIGN      : '+=';
-SUB_ASSIGN      : '-=';
-MUL_ASSIGN      : '*=';
-DIV_ASSIGN      : '/=';
-AND_ASSIGN      : '&=';
-OR_ASSIGN       : '|=';
-XOR_ASSIGN      : '^=';
-MOD_ASSIGN      : '%=';
-LSHIFT_ASSIGN   : '<<=';
-RSHIFT_ASSIGN   : '>>=';
-URSHIFT_ASSIGN  : '>>>=';
-ELVIS_ASSIGN    : '?=';
-
-
-// §3.8 Identifiers (must appear after all keywords in the grammar)
-CapitalizedIdentifier
-    :   [A-Z] JavaLetterOrDigit*
-
-    // Groovy's identifier can be unicode escape
-    |   [A-Z] (JavaLetterOrDigit | UnicodeEscape)*
-    ;
-
-Identifier
-    :   JavaLetter JavaLetterOrDigit*
-
-    // Groovy's identifier can be unicode escape
-    |   (JavaLetter | UnicodeEscape) (JavaLetterOrDigit | UnicodeEscape)*
-    ;
-
-fragment
-IdentifierInGString
-    :   JavaLetterInGString JavaLetterOrDigitInGString*
-    ;
-
-fragment
-JavaLetterInGString
-    :   [a-zA-Z_] // these are the "java letters" below 0x7F, except for $
-    |   // covers all characters above 0x7F which are not a surrogate
-        ~[\u0000-\u007F\uD800-\uDBFF]
-        {Character.isJavaIdentifierStart(_input.LA(-1))}?
-    |   // covers UTF-16 surrogate pairs encodings for U+10000 to U+10FFFF
-        [\uD800-\uDBFF] [\uDC00-\uDFFF]
-        {Character.isJavaIdentifierStart(Character.toCodePoint((char)_input.LA(-2), (char)_input.LA(-1)))}?
-    ;
-
-fragment
-JavaLetterOrDigitInGString
-    :   [a-zA-Z0-9_] // these are the "java letters or digits" below 0x7F, except for $
-    |   // covers all characters above 0x7F which are not a surrogate
-        ~[\u0000-\u007F\uD800-\uDBFF]
-        {Character.isJavaIdentifierPart(_input.LA(-1))}?
-    |   // covers UTF-16 surrogate pairs encodings for U+10000 to U+10FFFF
-        [\uD800-\uDBFF] [\uDC00-\uDFFF]
-        {Character.isJavaIdentifierPart(Character.toCodePoint((char)_input.LA(-2), (char)_input.LA(-1)))}?
-    ;
-
-
-fragment
-JavaLetter
-    :   [a-zA-Z$_] // these are the "java letters" below 0x7F
-    |   // covers all characters above 0x7F which are not a surrogate
-        ~[\u0000-\u007F\uD800-\uDBFF]
-        {Character.isJavaIdentifierStart(_input.LA(-1))}?
-    |   // covers UTF-16 surrogate pairs encodings for U+10000 to U+10FFFF
-        [\uD800-\uDBFF] [\uDC00-\uDFFF]
-        {Character.isJavaIdentifierStart(Character.toCodePoint((char)_input.LA(-2), (char)_input.LA(-1)))}?
-    ;
-
-fragment
-JavaLetterOrDigit
-    :   [a-zA-Z0-9$_] // these are the "java letters or digits" below 0x7F
-    |   // covers all characters above 0x7F which are not a surrogate
-        ~[\u0000-\u007F\uD800-\uDBFF]
-        {Character.isJavaIdentifierPart(_input.LA(-1))}?
-    |   // covers UTF-16 surrogate pairs encodings for U+10000 to U+10FFFF
-        [\uD800-\uDBFF] [\uDC00-\uDFFF]
-        {Character.isJavaIdentifierPart(Character.toCodePoint((char)_input.LA(-2), (char)_input.LA(-1)))}?
-    ;
-
-//
-// Additional symbols not defined in the lexical specification
-//
-
-AT : '@';
-ELLIPSIS : '...';
-
-//
-// Whitespace, line escape and comments
-//
-WS  :  ([ \t\u000C]+ | LineEscape+)     -> skip
-    ;
-
-
-// Inside (...) and [...] but not {...}, ignore newlines.
-NL  : '\r'? '\n'            { this.ignoreTokenInsideParens(); }
-    ;
-
-// Multiple-line comments(including groovydoc comments)
-ML_COMMENT
-    :   '/*' .*? '*/'       { this.ignoreMultiLineCommentConditionally(); } -> type(NL)
-    ;
-
-// Single-line comments
-SL_COMMENT
-    :   '//' ~[\r\n\uFFFF]* { this.ignoreTokenInsideParens(); }             -> type(NL)
-    ;
-
-// Script-header comments.
-// The very first characters of the file may be "#!".  If so, ignore the first line.
-SH_COMMENT
-    :   '#!' { 0 == this.tokenIndex }?<fail={"Shebang comment should appear at the first line"}> ~[\r\n\uFFFF]* -> skip
-    ;
-
-// Unexpected characters will be handled by groovy parser later.
-UNEXPECTED_CHAR
-    :   .
-    ;

http://git-wip-us.apache.org/repos/asf/groovy/blob/fc23a2ed/subprojects/groovy-antlr4-grammar/src/main/antlr4/org/apache/groovy/parser/antlr4/GroovyParser.g4
----------------------------------------------------------------------
diff --git a/subprojects/groovy-antlr4-grammar/src/main/antlr4/org/apache/groovy/parser/antlr4/GroovyParser.g4 b/subprojects/groovy-antlr4-grammar/src/main/antlr4/org/apache/groovy/parser/antlr4/GroovyParser.g4
deleted file mode 100644
index dec2f3f..0000000
--- a/subprojects/groovy-antlr4-grammar/src/main/antlr4/org/apache/groovy/parser/antlr4/GroovyParser.g4
+++ /dev/null
@@ -1,1213 +0,0 @@
-/*
- [The "BSD licence"]
- Copyright (c) 2013 Terence Parr, Sam Harwell
- Copyright (c) 2016 Daniel Sun
- All rights reserved.
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
- 1. Redistributions of source code must retain the above copyright
-    notice, this list of conditions and the following disclaimer.
- 2. Redistributions in binary form must reproduce the above copyright
-    notice, this list of conditions and the following disclaimer in the
-    documentation and/or other materials provided with the distribution.
- 3. The name of the author may not be used to endorse or promote products
-    derived from this software without specific prior written permission.
- THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-/**
- * The Groovy grammar is based on the official grammar for Java(https://github.com/antlr/grammars-v4/blob/master/java/Java.g4)
- *
- * @author <a href="mailto:realbluesun@hotmail.com">Daniel.Sun</a>
- * Created on   2016/08/14
- *
- */
-parser grammar GroovyParser;
-
-options {
-    tokenVocab = GroovyLexer;
-    contextSuperClass = GroovyParserRuleContext;
-    superClass = AbstractParser;
-}
-
-@header {
-    import java.util.Map;
-    import org.codehaus.groovy.util.ListHashMap;
-    import org.apache.groovy.parser.antlr4.SemanticPredicates;
-    import org.codehaus.groovy.GroovyBugError;
-}
-
-@members {
-
-    public static class GroovyParserRuleContext extends ParserRuleContext {
-        private Map metaDataMap = null;
-
-        public GroovyParserRuleContext() {}
-
-        public GroovyParserRuleContext(ParserRuleContext parent, int invokingStateNumber) {
-            super(parent, invokingStateNumber);
-        }
-
-        /**
-         * Gets the node meta data.
-         *
-         * @param key - the meta data key
-         * @return the node meta data value for this key
-         */
-        public <T> T getNodeMetaData(Object key) {
-            if (metaDataMap == null) {
-                return (T) null;
-            }
-            return (T) metaDataMap.get(key);
-        }
-
-        /**
-         * Sets the node meta data.
-         *
-         * @param key - the meta data key
-         * @param value - the meta data value
-         * @throws GroovyBugError if key is null or there is already meta
-         *                        data under that key
-         */
-        public void setNodeMetaData(Object key, Object value) {
-            if (key==null) throw new GroovyBugError("Tried to set meta data with null key on "+this+".");
-            if (metaDataMap == null) {
-                metaDataMap = new ListHashMap();
-            }
-            Object old = metaDataMap.put(key,value);
-            if (old!=null) throw new GroovyBugError("Tried to overwrite existing meta data "+this+".");
-        }
-
-        /**
-         * Sets the node meta data but allows overwriting values.
-         *
-         * @param key   - the meta data key
-         * @param value - the meta data value
-         * @return the old node meta data value for this key
-         * @throws GroovyBugError if key is null
-         */
-        public Object putNodeMetaData(Object key, Object value) {
-            if (key == null) throw new GroovyBugError("Tried to set meta data with null key on " + this + ".");
-            if (metaDataMap == null) {
-                metaDataMap = new ListHashMap();
-            }
-            return metaDataMap.put(key, value);
-        }
-    }
-
-    @Override
-    public int getSyntaxErrorSource() {
-        return GroovySyntaxError.PARSER;
-    }
-
-    @Override
-    public String genPositionInfo() {
-        Token token = _input.LT(-1);
-
-        if (null == token) {
-            return "";
-        }
-
-        return " @ line " + token.getLine() + ", column " + (token.getCharPositionInLine() + 1 + token.getText().length());
-    }
-
-
-}
-
-// starting point for parsing a groovy file
-compilationUnit
-    :
-        nls
-        (packageDeclaration (sep | EOF))? (statement (sep | EOF))* EOF
-    ;
-
-packageDeclaration
-    :   annotationsOpt PACKAGE qualifiedName
-    ;
-
-importDeclaration
-    :   annotationsOpt IMPORT STATIC? qualifiedName (DOT MUL | AS alias=identifier)?
-    ;
-
-
-typeDeclaration
-    :   classOrInterfaceModifiersOpt classDeclaration
-    ;
-
-modifier
-    :   classOrInterfaceModifier
-    |   m=(   NATIVE
-          |   SYNCHRONIZED
-          |   TRANSIENT
-          |   VOLATILE
-          |   DEF
-          )
-    ;
-
-modifiersOpt
-    :   modifiers?
-    ;
-
-modifiers
-    :   (modifier nls)+
-    ;
-
-classOrInterfaceModifiersOpt
-    :   classOrInterfaceModifiers?
-    ;
-
-classOrInterfaceModifiers
-    :   (classOrInterfaceModifier nls)+
-    ;
-
-classOrInterfaceModifier
-    :   annotation       // class or interface
-    |   m=(   PUBLIC     // class or interface
-          |   PROTECTED  // class or interface
-          |   PRIVATE    // class or interface
-          |   STATIC     // class or interface
-          |   ABSTRACT   // class or interface
-          |   FINAL      // class only -- does not apply to interfaces
-          |   STRICTFP   // class or interface
-          |   DEFAULT    // interface only -- does not apply to classes
-          )
-    ;
-
-variableModifier
-    :   annotation
-    |   m=( FINAL
-          | DEF
-          // Groovy supports declaring local variables as instance/class fields,
-          // e.g. import groovy.transform.*; @Field static List awe = [1, 2, 3]
-          // e.g. import groovy.transform.*; def a = { @Field public List awe = [1, 2, 3] }
-          // Notice: Groovy 2.4.7 just allows to declare local variables with the following modifiers when using annotations(e.g. @Field)
-          // TODO check whether the following modifiers accompany annotations or not. Because the legacy codes(e.g. benchmark/bench/heapsort.groovy) allow to declare the special instance/class fields without annotations, we leave it as it is for the time being
-          | PUBLIC
-          | PROTECTED
-          | PRIVATE
-          | STATIC
-          | ABSTRACT
-          | STRICTFP
-          )
-    ;
-
-variableModifiersOpt
-    :   variableModifiers?
-    ;
-
-variableModifiers
-    :   (variableModifier nls)+
-    ;
-
-typeParameters
-    :   LT nls typeParameter (COMMA nls typeParameter)* nls GT
-    ;
-
-typeParameter
-    :   className (EXTENDS nls typeBound)?
-    ;
-
-typeBound
-    :   type (BITAND nls type)*
-    ;
-
-typeList
-    :   type (COMMA nls type)*
-    ;
-
-
-/**
- *  t   0: class; 1: interface; 2: enum; 3: annotation; 4: trait
- */
-classDeclaration
-locals[ int t ]
-    :   (   CLASS { $t = 0; }
-        |   INTERFACE { $t = 1; }
-        |   ENUM { $t = 2; }
-        |   AT INTERFACE { $t = 3; }
-        |   TRAIT { $t = 4; }
-        )
-        identifier nls
-
-        (
-            { 3 != $t }?
-            typeParameters? nls
-            (
-                { 2 != $t }?
-                (EXTENDS nls
-                    (
-                        // Only interface can extend more than one super class
-                        {1 == $t}? scs=typeList
-                    |
-                        sc=type
-                    )
-                nls)?
-            |
-                /* enum should not have type parameters and extends */
-            )
-
-            (
-                {1 != $t}?
-                (IMPLEMENTS nls is=typeList nls)?
-            |
-                /* interface should not implement other interfaces */
-            )
-        |
-            /* annotation should not have implements and extends*/
-        )
-
-        classBody[$t]
-    ;
-
-// t    see the comment of classDeclaration
-classBody[int t]
-    :   LBRACE nls
-        (
-            /* Only enum can have enum constants */
-            { 2 == $t }?
-            enumConstants? nls
-        |
-
-        )
-        classBodyDeclaration[$t]? (sep classBodyDeclaration[$t])* sep? RBRACE
-    ;
-
-enumConstants
-    :   enumConstant (nls COMMA nls enumConstant)* (nls COMMA)?
-    ;
-
-enumConstant
-    :   annotationsOpt identifier arguments? anonymousInnerClassDeclaration[1]?
-    ;
-
-classBodyDeclaration[int t]
-    :   SEMI
-    |   (STATIC nls)? block
-    |   memberDeclaration[$t]
-    ;
-
-memberDeclaration[int t]
-    :   methodDeclaration[0, $t]
-    |   fieldDeclaration
-    |   modifiersOpt classDeclaration
-    ;
-
-/**
- *  t   0: *class member* all kinds of method declaration AND constructor declaration,
- *      1: normal method declaration, 2: abstract method declaration
- *      3: normal method declaration OR abstract method declaration
- *  ct  9: script, other see the comment of classDeclaration
- */
-methodDeclaration[int t, int ct]
-    :   { 3 == $ct }?
-        returnType[$ct] methodName LPAREN rparen (DEFAULT nls elementValue)?
-    |
-        (   modifiersOpt  typeParameters? returnType[$ct]
-        |   modifiers  typeParameters? returnType[$ct]?
-        |
-            { 0 == $t }?
-            modifiersOpt typeParameters?
-        )
-        methodName formalParameters (nls THROWS nls qualifiedClassNameList)?
-        (
-            { 0 == $t || 3 == $t || 1 == $t}?
-            nls methodBody
-        |
-            { 0 == $t || 3 == $t || 2 == $t }?
-            /* no method body */
-        )
-    ;
-
-methodName
-    :   identifier
-    |   stringLiteral
-    ;
-
-returnType[int ct]
-    :
-        type
-    |
-        // annotation method can not have void return type
-        { 3 != $ct }? VOID
-    ;
-
-fieldDeclaration
-    :   variableDeclaration[1]
-    ;
-
-variableDeclarators
-    :   variableDeclarator (COMMA nls variableDeclarator)*
-    ;
-
-variableDeclarator
-    :   variableDeclaratorId (ASSIGN nls variableInitializer)?
-    ;
-
-variableDeclaratorId
-    :   identifier
-    ;
-
-variableInitializer
-    :   arrayInitializer
-    |   statementExpression
-    |   standardLambda
-    ;
-
-arrayInitializer
-    :   LBRACK (variableInitializer (COMMA variableInitializer)* (COMMA)? )? RBRACK
-    ;
-
-type
-    :   primitiveType (LBRACK RBRACK)*
-    |   classOrInterfaceType (LBRACK RBRACK)*
-    ;
-
-classOrInterfaceType
-    :   qualifiedStandardClassName typeArguments?
-    ;
-
-primitiveType
-    :   BuiltInPrimitiveType
-    ;
-
-typeArguments
-    :   LT nls typeArgument (COMMA nls typeArgument)* nls GT
-    ;
-
-typeArgument
-    :   type
-    |   QUESTION ((EXTENDS | SUPER) nls type)?
-    ;
-
-qualifiedClassNameList
-    :   qualifiedClassName (COMMA nls qualifiedClassName)*
-    ;
-
-formalParameters
-    :   LPAREN formalParameterList? rparen
-    ;
-
-formalParameterList
-    :   formalParameter (COMMA nls formalParameter)* (COMMA nls lastFormalParameter)?
-    |   lastFormalParameter
-    ;
-
-formalParameter
-    :   variableModifiersOpt type?          variableDeclaratorId (ASSIGN nls expression)?
-    ;
-
-lastFormalParameter
-    :   variableModifiersOpt type? ELLIPSIS variableDeclaratorId (ASSIGN nls expression)?
-    ;
-
-methodBody
-    :   block
-    ;
-
-qualifiedName
-    :   qualifiedNameElement (DOT qualifiedNameElement)*
-    ;
-
-/**
- *  Java doesn't have the keywords 'as', 'in', 'def', 'trait' so we make some allowances
- *  for them in package names for better integration with existing Java packages
- */
-qualifiedNameElement
-    :   identifier
-    |   DEF
-    |   IN
-    |   AS
-    |   TRAIT
-    ;
-
-qualifiedClassName
-    :   (qualifiedNameElement DOT)* identifier
-    ;
-
-qualifiedStandardClassName
-    :   (qualifiedNameElement DOT)* (className DOT)* className
-    ;
-
-literal
-    :   IntegerLiteral                                                                      #integerLiteralAlt
-    |   FloatingPointLiteral                                                                #floatingPointLiteralAlt
-    |   stringLiteral                                                                       #stringLiteralAlt
-    |   BooleanLiteral                                                                      #booleanLiteralAlt
-    |   NullLiteral                                                                         #nullLiteralAlt
-    ;
-
-// GSTRING
-
-gstring
-    :   GStringBegin gstringValue (GStringPart  gstringValue)* GStringEnd
-    ;
-
-gstringValue
-    :   gstringPath
-    |   LBRACE statementExpression? RBRACE
-    |   closure
-    ;
-
-gstringPath
-    :   identifier GStringPathPart*
-    ;
-
-
-// LAMBDA EXPRESSION
-lambda
-options { baseContext = standardLambda; }
-	:	lambdaParameters nls ARROW nls lambdaBody
-	;
-
-standardLambda
-	:	standardLambdaParameters nls ARROW nls lambdaBody
-	;
-
-lambdaParameters
-options { baseContext = standardLambdaParameters; }
-    :   formalParameters
-
-    // { a -> a * 2 } can be parsed as a lambda expression in a block, but we expect a closure.
-    // So it is better to put parameters in the parentheses and the following single parameter without parentheses is limited
-//    |   variableDeclaratorId
-    ;
-
-standardLambdaParameters
-    :   formalParameters
-    |   variableDeclaratorId
-    ;
-
-lambdaBody
-	:	block
-	|	expression
-	;
-
-
-// CLOSURE
-closure
-locals[ String footprint = "" ]
-    :   LBRACE nls (formalParameterList? nls ARROW nls)? blockStatementsOpt RBRACE
-    ;
-
-blockStatementsOpt
-    :   blockStatements?
-    ;
-
-blockStatements
-    :   blockStatement (sep blockStatement)* sep?
-    ;
-
-// ANNOTATIONS
-
-annotationsOpt
-    :   (annotation nls)*
-    ;
-
-annotation
-    :   AT annotationName ( LPAREN elementValues? rparen )?
-    ;
-
-elementValues
-    :   elementValuePairs
-    |   elementValue
-    ;
-
-annotationName : qualifiedClassName ;
-
-elementValuePairs
-    :   elementValuePair (COMMA elementValuePair)*
-    ;
-
-elementValuePair
-    :   elementValuePairName ASSIGN elementValue
-    ;
-
-elementValuePairName
-    :   identifier
-    |   keywords
-    ;
-
-// TODO verify the potential performance issue because rule expression contains sub-rule assignments(https://github.com/antlr/grammars-v4/issues/215)
-elementValue
-    :   elementValueArrayInitializer
-    |   annotation
-    |   expression
-    ;
-
-elementValueArrayInitializer
-    :   LBRACK (elementValue (COMMA elementValue)*)? (COMMA)? RBRACK
-    ;
-
-// STATEMENTS / BLOCKS
-
-block
-    :   LBRACE nls blockStatementsOpt RBRACE
-    ;
-
-blockStatement
-    :   localVariableDeclaration
-    |   statement
-    |   typeDeclaration
-    ;
-
-localVariableDeclaration
-    :   variableDeclaration[0]
-    ;
-
-/**
- *  t   0: local variable declaration; 1: field declaration
- */
-variableDeclaration[int t]
-    :   (   { 0 == $t }? variableModifiersOpt
-        |   { 1 == $t }? modifiersOpt
-        )
-        type variableDeclarators
-    |
-        (   { 0 == $t }? variableModifiers
-        |   { 1 == $t }? modifiers
-        )
-        type? variableDeclarators
-    |
-        (   { 0 == $t }? variableModifiers
-        |   { 1 == $t }? modifiers
-        )
-        typeNamePairs ASSIGN nls variableInitializer
-    ;
-
-typeNamePairs
-    :   LPAREN typeNamePair (COMMA typeNamePair)* rparen
-    ;
-
-typeNamePair
-    :   type? variableDeclaratorId
-    ;
-
-variableNames
-    :   LPAREN variableDeclaratorId (COMMA variableDeclaratorId)+ rparen
-    ;
-
-switchStatement
-locals[ String footprint = "" ]
-    :   SWITCH parExpression nls LBRACE nls switchBlockStatementGroup* nls RBRACE
-    ;
-
-loopStatement
-locals[ String footprint = "" ]
-    :   FOR LPAREN forControl rparen nls statement                                                          #forStmtAlt
-    |   WHILE parExpression nls statement                                                                   #whileStmtAlt
-    |   DO nls statement nls WHILE parExpression                                                            #doWhileStmtAlt
-    ;
-
-continueStatement
-locals[ boolean isInsideLoop ]
-@init {
-    try {
-        $isInsideLoop = null != $loopStatement::footprint;
-    } catch(NullPointerException e) {
-        $isInsideLoop = false;
-    }
-}
-    :   CONTINUE
-        { $isInsideLoop }?<fail={"the continue statement is only allowed inside loops"}>
-        identifier?
-    ;
-
-breakStatement
-locals[ boolean isInsideLoop, boolean isInsideSwitch ]
-@init {
-    try {
-        $isInsideLoop = null != $loopStatement::footprint;
-    } catch(NullPointerException e) {
-        $isInsideLoop = false;
-    }
-
-    try {
-        $isInsideSwitch = null != $switchStatement::footprint;
-    } catch(NullPointerException e) {
-        $isInsideSwitch = false;
-    }
-}
-    :   BREAK
-        { $isInsideLoop || $isInsideSwitch }?<fail={"the break statement is only allowed inside loops or switches"}>
-        identifier?
-    ;
-
-tryCatchStatement
-locals[boolean resourcesExists = false]
-    :   TRY (resources { $resourcesExists = true; })? nls
-        block
-        (
-            (nls catchClause)+
-            (nls finallyBlock)?
-        |
-            nls finallyBlock
-        |
-            // try-with-resources can have no catche and finally clauses
-            { $resourcesExists }?<fail={"catch or finally clauses are required for try-catch statement"}>
-        )
-    ;
-
-statement
-    :   block                                                                                               #blockStmtAlt
-    |   ASSERT ce=expression ((COLON | COMMA) nls me=expression)?                                           #assertStmtAlt
-    |   IF parExpression nls tb=statement ((nls | sep) ELSE nls fb=statement)?                              #ifElseStmtAlt
-    |   loopStatement                                                                                       #loopStmtAlt
-
-    |   tryCatchStatement                                                                                   #tryCatchStmtAlt
-
-    |   switchStatement                                                                                     #switchStmtAlt
-    |   SYNCHRONIZED parExpression nls block                                                                #synchronizedStmtAlt
-    |   RETURN expression?                                                                                  #returnStmtAlt
-    |   THROW expression                                                                                    #throwStmtAlt
-
-    |   breakStatement                                                                                      #breakStmtAlt
-    |   continueStatement                                                                                   #continueStmtAlt
-
-    |   identifier COLON nls statement                                                                      #labeledStmtAlt
-
-    // Import statement.  Can be used in any scope.  Has "import x as y" also.
-    |   importDeclaration                                                                                   #importStmtAlt
-
-    |   typeDeclaration                                                                                     #typeDeclarationStmtAlt
-    |   localVariableDeclaration                                                                            #localVariableDeclarationStmtAlt
-
-    // validate the method in the AstBuilder#visitMethodDeclaration, e.g. method without method body is not allowed
-    |   { !SemanticPredicates.isInvalidMethodDeclaration(_input) }?
-        methodDeclaration[3, 9]                                                                             #methodDeclarationStmtAlt
-
-    |   statementExpression                                                                                 #expressionStmtAlt
-
-    |   SEMI                                                                                                #emptyStmtAlt
-    ;
-
-catchClause
-    :   CATCH LPAREN variableModifiersOpt catchType? identifier rparen nls block
-    ;
-
-catchType
-    :   qualifiedClassName (BITOR qualifiedClassName)*
-    ;
-
-finallyBlock
-    :   FINALLY nls block
-    ;
-
-
-resources
-    :   LPAREN nls resourceList sep? rparen
-    ;
-
-resourceList
-    :   resource (sep resource)*
-    ;
-
-resource
-    :   localVariableDeclaration
-    |   expression
-    ;
-
-
-/** Matches cases then statements, both of which are mandatory.
- *  To handle empty cases at the end, we add switchLabel* to statement.
- */
-switchBlockStatementGroup
-    :   (switchLabel nls)+ blockStatements
-    ;
-
-switchLabel
-    :   CASE expression COLON
-    |   DEFAULT COLON
-    ;
-
-forControl
-    :   enhancedForControl
-    |   forInit? SEMI expression? SEMI forUpdate?
-    ;
-
-forInit
-    :   localVariableDeclaration
-    |   expression
-    ;
-
-forUpdate
-    :   expression
-    ;
-
-enhancedForControl
-    :   variableModifiersOpt type? variableDeclaratorId (COLON | IN) expression
-    ;
-
-
-// EXPRESSIONS
-
-castParExpression
-    :   LPAREN type rparen
-    ;
-
-parExpression
-    :   LPAREN (statementExpression | standardLambda) rparen
-    ;
-
-expressionList
-    :   expressionListElement (COMMA expressionListElement)*
-    ;
-
-expressionListElement
-    :   MUL? expression
-    ;
-
-/**
- *  In order to resolve the syntactic ambiguities, e.g. (String)'abc' can be parsed as a cast expression or a parentheses-less method call(method name: (String), arguments: 'abc')
- *      try to match expression first.
- *  If it is not a normal expression, then try to match the command expression
- */
-statementExpression
-    :   expression                          #normalExprAlt
-    |   commandExpression                   #commandExprAlt
-    ;
-
-expression
-    // qualified names, array expressions, method invocation, post inc/dec, type casting (level 1)
-    // The cast expression must be put before pathExpression to resovle the ambiguities between type casting and call on parentheses expression, e.g. (int)(1 / 2)
-    :   castParExpression expression                                                        #castExprAlt
-    |   pathExpression op=(INC | DEC)?                                                      #postfixExprAlt
-
-    // ~(BNOT)/!(LNOT) (level 1)
-    |   (BITNOT | NOT) nls expression                                                       #unaryNotExprAlt
-
-    // math power operator (**) (level 2)
-    |   left=expression op=POWER nls right=expression                                       #powerExprAlt
-
-    // ++(prefix)/--(prefix)/+(unary)/-(unary) (level 3)
-    |   op=(INC | DEC | ADD | SUB) expression                                               #unaryAddExprAlt
-
-    // multiplication/division/modulo (level 4)
-    |   left=expression op=(MUL | DIV | MOD) nls right=expression                           #multiplicativeExprAlt
-
-    // binary addition/subtraction (level 5)
-    |   left=expression op=(ADD | SUB) nls right=expression                                 #additiveExprAlt
-
-    // bit shift expressions (level 6)
-    |   left=expression
-            (           (   dlOp=LT LT
-                        |   tgOp=GT GT GT
-                        |   dgOp=GT GT
-                        )
-            |   rangeOp=(    RANGE_INCLUSIVE
-                        |    RANGE_EXCLUSIVE
-                        )
-            ) nls
-        right=expression                                                                    #shiftExprAlt
-
-    // boolean relational expressions (level 7)
-    |   left=expression op=(AS | INSTANCEOF | NOT_INSTANCEOF) nls type                      #relationalExprAlt
-    |   left=expression op=(LE | GE | GT | LT | IN | NOT_IN)  nls right=expression          #relationalExprAlt
-
-    // equality/inequality (==/!=) (level 8)
-    |   left=expression
-            op=(    IDENTICAL
-               |    NOT_IDENTICAL
-               |    EQUAL
-               |    NOTEQUAL
-               |    SPACESHIP
-               ) nls
-        right=expression                                                                    #equalityExprAlt
-
-    // regex find and match (=~ and ==~) (level 8.5)
-    // jez: moved =~ closer to precedence of == etc, as...
-    // 'if (foo =~ "a.c")' is very close in intent to 'if (foo == "abc")'
-    |   left=expression op=(REGEX_FIND | REGEX_MATCH) nls right=expression                  #regexExprAlt
-
-    // bitwise or non-short-circuiting and (&)  (level 9)
-    |   left=expression op=BITAND nls right=expression                                      #andExprAlt
-
-    // exclusive or (^)  (level 10)
-    |   left=expression op=XOR nls right=expression                                         #exclusiveOrExprAlt
-
-    // bitwise or non-short-circuiting or (|)  (level 11)
-    |   left=expression op=BITOR nls right=expression                                       #inclusiveOrExprAlt
-
-    // logical and (&&)  (level 12)
-    |   left=expression op=AND nls right=expression                                         #logicalAndExprAlt
-
-    // logical or (||)  (level 13)
-    |   left=expression op=OR nls right=expression                                          #logicalOrExprAlt
-
-    // conditional test (level 14)
-    |   <assoc=right> con=expression
-        (   nls QUESTION nls tb=expression nls COLON nls
-        |   nls ELVIS nls
-        )
-        fb=expression                                                                       #conditionalExprAlt
-
-    // assignment expression (level 15)
-    // "(a) = [1]" is a special case of multipleAssignmentExprAlt, it will be handle by assignmentExprAlt
-    |   <assoc=right> left=variableNames op=ASSIGN nls right=statementExpression            #multipleAssignmentExprAlt
-    |   <assoc=right> left=expression
-                        op=(   ASSIGN
-                           |   ADD_ASSIGN
-                           |   SUB_ASSIGN
-                           |   MUL_ASSIGN
-                           |   DIV_ASSIGN
-                           |   AND_ASSIGN
-                           |   OR_ASSIGN
-                           |   XOR_ASSIGN
-                           |   RSHIFT_ASSIGN
-                           |   URSHIFT_ASSIGN
-                           |   LSHIFT_ASSIGN
-                           |   MOD_ASSIGN
-                           |   POWER_ASSIGN
-                           |   ELVIS_ASSIGN
-                           ) nls
-                     (statementExpression | standardLambda)                                 #assignmentExprAlt
-    ;
-
-commandExpression
-    :   pathExpression
-        (
-            { SemanticPredicates.isFollowingMethodName($pathExpression.t) }?
-            argumentList
-        |
-            /* if pathExpression is a method call, no need to have any more arguments */
-        )
-
-        commandArgument*
-    ;
-
-commandArgument
-    :   primary
-        // what follows is either a normal argument, parens,
-        // an appended block, an index operation, or nothing
-        // parens (a b already processed):
-        //      a b c() d e -> a(b).c().d(e)
-        //      a b c()() d e -> a(b).c().call().d(e)
-        // index (a b already processed):
-        //      a b c[x] d e -> a(b).c[x].d(e)
-        //      a b c[x][y] d e -> a(b).c[x][y].d(e)
-        // block (a b already processed):
-        //      a b c {x} d e -> a(b).c({x}).d(e)
-        //
-        // parens/block completes method call
-        // index makes method call to property get with index
-        //
-        (   pathElement+
-        |   argumentList
-        )?
-    ;
-
-/**
- *  A "path expression" is a name or other primary, possibly qualified by various
- *  forms of dot, and/or followed by various kinds of brackets.
- *  It can be used for value or assigned to, or else further qualified, indexed, or called.
- *  It is called a "path" because it looks like a linear path through a data structure.
- *  Examples:  x.y, x?.y, x*.y, x.@y; x[], x[y], x[y,z]; x(), x(y), x(y,z); x{s}; a.b[n].c(x).d{s}
- *  (Compare to a C lvalue, or LeftHandSide in the JLS section 15.26.)
- *  General expressions are built up from path expressions, using operators like '+' and '='.
- *
- *  t   0: primary, 1: namePart, 2: arguments, 3: closure, 4: indexPropertyArgs, 5: namedPropertyArgs
- */
-pathExpression returns [int t]
-    :   primary (pathElement { $t = $pathElement.t; })*
-    ;
-
-pathElement returns [int t]
-locals[ boolean isInsideClosure ]
-@init {
-    try {
-        $isInsideClosure = null != $closure::footprint;
-    } catch(NullPointerException e) {
-        $isInsideClosure = false;
-    }
-}
-    :   nls
-
-        // AT: foo.@bar selects the field (or attribute), not property
-        ( SPREAD_DOT nls (AT | nonWildcardTypeArguments)?       // Spread operator:  x*.y  ===  x?.collect{it.y}
-        | SAFE_DOT nls (AT | nonWildcardTypeArguments)?         // Optional-null operator:  x?.y  === (x==null)?null:x.y
-        | METHOD_POINTER nls                                    // Method pointer operator: foo.&y == foo.metaClass.getMethodPointer(foo, "y")
-        | METHOD_REFERENCE nls                                  // Method reference: System.out::println
-        | DOT nls (AT | nonWildcardTypeArguments)?              // The all-powerful dot.
-        )
-        namePart
-        { $t = 1; }
-
-    |   arguments
-        { $t = 2; }
-
-    // Can always append a block, as foo{bar}
-    |   nls closure
-        { $t = 3; }
-
-    // Element selection is always an option, too.
-    // In Groovy, the stuff between brackets is a general argument list,
-    // since the bracket operator is transformed into a method call.
-    |   indexPropertyArgs
-        { $t = 4; }
-
-    |   namedPropertyArgs
-        { $t = 5; }
-    ;
-
-/**
- *  This is the grammar for what can follow a dot:  x.a, x.@a, x.&a, x.'a', etc.
- */
-namePart
-    :
-        (   identifier
-
-        // foo.'bar' is in all ways same as foo.bar, except that bar can have an arbitrary spelling
-        |   stringLiteral
-
-        |   dynamicMemberName
-
-        /* just a PROPOSAL, which has not been implemented yet!
-        // PROPOSAL, DECIDE:  Is this inline form of the 'with' statement useful?
-        // Definition:  a.{foo} === {with(a) {foo}}
-        // May cover some path expression use-cases previously handled by dynamic scoping (closure delegates).
-        |   block
-        */
-
-        // let's allow common keywords as property names
-        |   keywords
-        )
-    ;
-
-/**
- *  If a dot is followed by a parenthesized or quoted expression, the member is computed dynamically,
- *  and the member selection is done only at runtime.  This forces a statically unchecked member access.
- */
-dynamicMemberName
-    :   parExpression
-    |   gstring
-    ;
-
-/** An expression may be followed by [...].
- *  Unlike Java, these brackets may contain a general argument list,
- *  which is passed to the array element operator, which can make of it what it wants.
- *  The brackets may also be empty, as in T[].  This is how Groovy names array types.
- */
-indexPropertyArgs
-    :   QUESTION? LBRACK expressionList? RBRACK
-    ;
-
-namedPropertyArgs
-    :   LBRACK mapEntryList RBRACK
-    ;
-
-primary
-    :   identifier                                                                          #identifierPrmrAlt
-    |   literal                                                                             #literalPrmrAlt
-    |   gstring                                                                             #gstringPrmrAlt
-    |   NEW nls creator                                                                     #newPrmrAlt
-    |   THIS                                                                                #thisPrmrAlt
-    |   SUPER                                                                               #superPrmrAlt
-    |   parExpression                                                                       #parenPrmrAlt
-    |   closure                                                                             #closurePrmrAlt
-    |   lambda                                                                              #lambdaPrmrAlt
-    |   list                                                                                #listPrmrAlt
-    |   map                                                                                 #mapPrmrAlt
-    |   builtInType                                                                         #typePrmrAlt
-    ;
-
-list
-locals[boolean empty = true]
-    :   LBRACK
-        (
-            expressionList
-            { $empty = false; }
-        )?
-        (
-            COMMA
-            { !$empty }?<fail={"Empty list constructor should not contain any comma(,)"}>
-        )?
-        RBRACK
-    ;
-
-map
-    :   LBRACK
-        (   mapEntryList COMMA?
-        |   COLON
-        )
-        RBRACK
-    ;
-
-mapEntryList
-    :   mapEntry (COMMA mapEntry)*
-    ;
-
-mapEntry
-    :   mapEntryLabel COLON nls expression
-    |   MUL COLON nls expression
-    ;
-
-mapEntryLabel
-    :   keywords
-    |   primary
-    ;
-
-creator
-    :   createdName nls arguments anonymousInnerClassDeclaration[0]?
-    |   createdName (LBRACK expression RBRACK)+ (b+=LBRACK RBRACK)*
-    ;
-
-/**
- *  t   0: anonymous inner class; 1: anonymous enum
- */
-anonymousInnerClassDeclaration[int t]
-    :   classBody[0]
-    ;
-
-createdName
-    :   primitiveType
-    |   qualifiedClassName typeArgumentsOrDiamond?
-    ;
-
-nonWildcardTypeArguments
-    :   LT nls typeList nls GT
-    ;
-
-typeArgumentsOrDiamond
-    :   LT GT
-    |   typeArguments
-    ;
-
-arguments
-    :   LPAREN
-        (   enhancedArgumentList?
-        |   enhancedArgumentList COMMA
-        )
-        rparen
-    ;
-
-argumentList
-options { baseContext = enhancedArgumentList; }
-    :   argumentListElement
-        (   COMMA nls
-            argumentListElement
-        )*
-    ;
-
-enhancedArgumentList
-    :   enhancedArgumentListElement
-        (   COMMA nls
-            enhancedArgumentListElement
-        )*
-    ;
-
-argumentListElement
-options { baseContext = enhancedArgumentListElement; }
-    :   expressionListElement
-    |   mapEntry
-    ;
-
-enhancedArgumentListElement
-    :   expressionListElement
-    |   standardLambda
-    |   mapEntry
-    ;
-
-stringLiteral
-    :   StringLiteral
-    ;
-
-className
-    :   CapitalizedIdentifier
-    ;
-
-identifier
-    :   Identifier
-    |   CapitalizedIdentifier
-
-    |
-        // if 'static' followed by DOT, we can treat them as identifiers, e.g. static.unused = { -> }
-        { DOT == _input.LT(2).getType() }?
-        STATIC
-    ;
-
-builtInType
-    :   BuiltInPrimitiveType
-    |   VOID
-    ;
-
-keywords
-    :   ABSTRACT
-    |   AS
-    |   ASSERT
-    |   BREAK
-    |   CASE
-    |   CATCH
-    |   CLASS
-    |   CONST
-    |   CONTINUE
-    |   DEF
-    |   DEFAULT
-    |   DO
-    |   ELSE
-    |   ENUM
-    |   EXTENDS
-    |   FINAL
-    |   FINALLY
-    |   FOR
-    |   GOTO
-    |   IF
-    |   IMPLEMENTS
-    |   IMPORT
-    |   IN
-    |   INSTANCEOF
-    |   INTERFACE
-    |   NATIVE
-    |   NEW
-    |   PACKAGE
-    |   RETURN
-    |   STATIC
-    |   STRICTFP
-    |   SUPER
-    |   SWITCH
-    |   SYNCHRONIZED
-    |   THIS
-    |   THREADSAFE
-    |   THROW
-    |   THROWS
-    |   TRANSIENT
-    |   TRAIT
-    |   TRY
-    |   VOLATILE
-    |   WHILE
-
-    |   NullLiteral
-    |   BooleanLiteral
-
-    |   BuiltInPrimitiveType
-    |   VOID
-
-    |   PUBLIC
-    |   PROTECTED
-    |   PRIVATE
-    ;
-
-rparen
-    :   RPAREN
-    |
-        // !!!Error Alternatives!!!
-        { require(false, "Missing ')'"); }
-    ;
-
-nls
-    :   NL*
-    ;
-
-sep :   SEMI NL*
-    |   NL+ (SEMI NL*)*
-    ;
-
-

http://git-wip-us.apache.org/repos/asf/groovy/blob/fc23a2ed/subprojects/groovy-antlr4-grammar/src/main/antlr4/org/apache/groovy/parser/antlr4/Java.g4.v20160306.zip
----------------------------------------------------------------------
diff --git a/subprojects/groovy-antlr4-grammar/src/main/antlr4/org/apache/groovy/parser/antlr4/Java.g4.v20160306.zip b/subprojects/groovy-antlr4-grammar/src/main/antlr4/org/apache/groovy/parser/antlr4/Java.g4.v20160306.zip
deleted file mode 100644
index 10358eb..0000000
Binary files a/subprojects/groovy-antlr4-grammar/src/main/antlr4/org/apache/groovy/parser/antlr4/Java.g4.v20160306.zip and /dev/null differ


Mime
View raw message