groovy git commit: Minor refactoring: compilationUnit

2017-10-05 Thread sunlan
Repository: groovy
Updated Branches:
  refs/heads/GROOVY_2_6_X 444abbf58 -> b6c999d06


Minor refactoring: compilationUnit


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

Branch: refs/heads/GROOVY_2_6_X
Commit: b6c999d06529109e0c4a382fb3f1b249201d6431
Parents: 444abbf
Author: sunlan 
Authored: Thu Oct 5 16:30:37 2017 +0800
Committer: sunlan 
Committed: Thu Oct 5 16:30:37 2017 +0800

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


http://git-wip-us.apache.org/repos/asf/groovy/blob/b6c999d0/src/antlr/GroovyParser.g4
--
diff --git a/src/antlr/GroovyParser.g4 b/src/antlr/GroovyParser.g4
index 700344b..39f3315 100644
--- a/src/antlr/GroovyParser.g4
+++ b/src/antlr/GroovyParser.g4
@@ -131,7 +131,11 @@ options {
 // starting point for parsing a groovy file
 compilationUnit
 :   nls
-(packageDeclaration (sep | EOF))? (statement (sep | EOF))* EOF
+packageDeclaration? sep? statements? EOF
+;
+
+statements
+:   statement (sep statement)* sep?
 ;
 
 packageDeclaration

http://git-wip-us.apache.org/repos/asf/groovy/blob/b6c999d0/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 7dfef2a..97eafa0 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
@@ -243,8 +243,7 @@ public class AstBuilder extends 
GroovyParserBaseVisitor implements Groov
 public ModuleNode visitCompilationUnit(CompilationUnitContext ctx) {
 this.visit(ctx.packageDeclaration());
 
-for (StatementContext s : ctx.statement()) {
-Object e = this.visit(s);
+for (ASTNode e : this.visitStatements(ctx.statements())) {
 if (e instanceof DeclarationListStatement) { // local variable 
declaration
 for (Statement ds : ((DeclarationListStatement) 
e).getDeclarationStatements()) {
 moduleNode.addStatement(ds);
@@ -277,6 +276,21 @@ public class AstBuilder extends 
GroovyParserBaseVisitor implements Groov
 }
 
 @Override
+public List visitStatements(StatementsContext ctx) {
+if (!asBoolean(ctx)) {
+return Collections.emptyList();
+}
+
+List nodeList = new ArrayList<>();
+
+for (StatementContext statementContext : ctx.statement()) {
+nodeList.add((ASTNode) this.visit(statementContext));
+}
+
+return nodeList;
+}
+
+@Override
 public PackageNode visitPackageDeclaration(PackageDeclarationContext ctx) {
 String packageName = this.visitQualifiedName(ctx.qualifiedName());
 moduleNode.setPackageName(packageName + DOT_STR);



groovy git commit: Minor refactoring: compilationUnit

2017-10-05 Thread sunlan
Repository: groovy
Updated Branches:
  refs/heads/master 6db885207 -> 196d93272


Minor refactoring: compilationUnit


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

Branch: refs/heads/master
Commit: 196d9327284cdac1a5dc162181e417afd8454da1
Parents: 6db8852
Author: sunlan 
Authored: Thu Oct 5 16:11:48 2017 +0800
Committer: sunlan 
Committed: Thu Oct 5 16:11:48 2017 +0800

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


http://git-wip-us.apache.org/repos/asf/groovy/blob/196d9327/src/antlr/GroovyParser.g4
--
diff --git a/src/antlr/GroovyParser.g4 b/src/antlr/GroovyParser.g4
index 23e7e7a..3f92ce4 100644
--- a/src/antlr/GroovyParser.g4
+++ b/src/antlr/GroovyParser.g4
@@ -98,7 +98,11 @@ options {
 // starting point for parsing a groovy file
 compilationUnit
 :   nls
-(packageDeclaration (sep | EOF))? (statement (sep | EOF))* EOF
+packageDeclaration? sep? statements? EOF
+;
+
+statements
+:   statement (sep statement)* sep?
 ;
 
 packageDeclaration

http://git-wip-us.apache.org/repos/asf/groovy/blob/196d9327/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 157a5be..6172c68 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
@@ -246,9 +246,7 @@ public class AstBuilder extends 
GroovyParserBaseVisitor implements Groov
 public ModuleNode visitCompilationUnit(CompilationUnitContext ctx) {
 this.visit(ctx.packageDeclaration());
 
-ctx.statement().stream()
-.map(this::visit)
-//.filter(e -> e instanceof Statement)
+this.visitStatements(ctx.statements())
 .forEach(e -> {
 if (e instanceof DeclarationListStatement) { // local 
variable declaration
 ((DeclarationListStatement) 
e).getDeclarationStatements().forEach(moduleNode::addStatement);
@@ -280,6 +278,17 @@ public class AstBuilder extends 
GroovyParserBaseVisitor implements Groov
 }
 
 @Override
+public List visitStatements(StatementsContext ctx) {
+if (!asBoolean(ctx)) {
+return Collections.emptyList();
+}
+
+return ctx.statement().stream()
+.map(e -> (ASTNode) visit(e))
+.collect(Collectors.toList());
+}
+
+@Override
 public PackageNode visitPackageDeclaration(PackageDeclarationContext ctx) {
 String packageName = this.visitQualifiedName(ctx.qualifiedName());
 moduleNode.setPackageName(packageName + DOT_STR);