From 25ccb28b1e5e6b6c66515880f1fc80cb85c361e6 Mon Sep 17 00:00:00 2001 From: Danny van Bruggen Date: Tue, 31 Jul 2018 20:27:45 +0200 Subject: [PATCH] Use Name only in modules, no type --- .../modules/ModuleDeclarationTest.java | 10 +- .../javaparser/ast/CompilationUnit.java | 1 + .../javaparser/ast/body/TypeDeclaration.java | 2 - .../javaparser/ast/expr/FieldAccessExpr.java | 6 - .../github/javaparser/ast/expr/NameExpr.java | 5 - .../ast/expr/ObjectCreationExpr.java | 1 - .../ast/modules/ModuleDeclaration.java | 4 - .../ast/modules/ModuleExportsStmt.java | 1 - .../ast/modules/ModuleProvidesStmt.java | 140 +++++++++--------- .../ast/modules/ModuleUsesStmt.java | 88 ++++++----- .../ast/observer/ObservableProperty.java | 2 +- .../ExplicitConstructorInvocationStmt.java | 6 - .../javaparser/ast/visitor/CloneVisitor.java | 10 +- .../javaparser/ast/visitor/EqualsVisitor.java | 6 +- .../visitor/GenericListVisitorAdapter.java | 6 +- .../ast/visitor/GenericVisitorAdapter.java | 6 +- .../ast/visitor/HashCodeVisitor.java | 4 +- .../ast/visitor/ModifierVisitor.java | 16 +- .../ast/visitor/NoCommentEqualsVisitor.java | 6 +- .../ast/visitor/NoCommentHashCodeVisitor.java | 4 +- .../ast/visitor/VoidVisitorAdapter.java | 6 +- .../metamodel/JavaParserMetaModel.java | 18 +-- .../ModuleProvidesStmtMetaModel.java | 4 +- .../metamodel/ModuleUsesStmtMetaModel.java | 2 +- .../printer/ConcreteSyntaxModel.java | 6 +- .../printer/PrettyPrintVisitor.java | 6 +- javaparser-core/src/main/javacc/java.jj | 7 +- 27 files changed, 178 insertions(+), 195 deletions(-) diff --git a/javaparser-core-testing/src/test/java/com/github/javaparser/modules/ModuleDeclarationTest.java b/javaparser-core-testing/src/test/java/com/github/javaparser/modules/ModuleDeclarationTest.java index d33505586f..ba9742405a 100644 --- a/javaparser-core-testing/src/test/java/com/github/javaparser/modules/ModuleDeclarationTest.java +++ b/javaparser-core-testing/src/test/java/com/github/javaparser/modules/ModuleDeclarationTest.java @@ -88,13 +88,13 @@ public void jlsExample1() { assertThat(moduleOpensStmt.getModuleNames()).containsExactly(parseName("T1.U1"), parseName("T2.U2")); ModuleUsesStmt moduleUsesStmt = module.getModuleStmts().get(8).asModuleUsesStmt(); - assertThat(moduleUsesStmt.getType().toString()).isEqualTo("V.W"); + assertThat(moduleUsesStmt.getNameAsString()).isEqualTo("V.W"); ModuleProvidesStmt moduleProvidesStmt = module.getModuleStmts().get(9).asModuleProvidesStmt(); - assertThat(moduleProvidesStmt.getType().toString()).isEqualTo("X.Y"); - assertThat(moduleProvidesStmt.getWithTypes()).containsExactly( - new ClassOrInterfaceType(parseClassOrInterfaceType("Z1"), "Z2"), - new ClassOrInterfaceType(parseClassOrInterfaceType("Z3"), "Z4")); + assertThat(moduleProvidesStmt.getNameAsString()).isEqualTo("X.Y"); + assertThat(moduleProvidesStmt.getWith()).containsExactly( + parseName("Z1.Z2"), + parseName("Z3.Z4")); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/CompilationUnit.java b/javaparser-core/src/main/java/com/github/javaparser/ast/CompilationUnit.java index 59f591c53f..9051b3f105 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/CompilationUnit.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/CompilationUnit.java @@ -61,6 +61,7 @@ import static com.github.javaparser.Providers.provider; import static com.github.javaparser.utils.CodeGenerationUtils.subtractPaths; import static com.github.javaparser.utils.Utils.assertNotNull; +import com.github.javaparser.ast.Node; /** *

diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/body/TypeDeclaration.java b/javaparser-core/src/main/java/com/github/javaparser/ast/body/TypeDeclaration.java index c6fc950ada..f3418d7bf8 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/body/TypeDeclaration.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/body/TypeDeclaration.java @@ -42,7 +42,6 @@ import static java.util.stream.Collectors.toList; import com.github.javaparser.ast.Node; import com.github.javaparser.resolution.declarations.ResolvedReferenceTypeDeclaration; - import java.util.Optional; /** @@ -247,5 +246,4 @@ public Optional toTypeDeclaration() { } public abstract ResolvedReferenceTypeDeclaration resolve(); - } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/FieldAccessExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/FieldAccessExpr.java index 6870c2bf5b..c3c99687fe 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/FieldAccessExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/FieldAccessExpr.java @@ -30,24 +30,18 @@ import com.github.javaparser.ast.type.Type; import com.github.javaparser.ast.visitor.GenericVisitor; import com.github.javaparser.ast.visitor.VoidVisitor; - import java.util.Optional; - import static com.github.javaparser.utils.Utils.assertNotNull; - import com.github.javaparser.ast.Node; import com.github.javaparser.ast.visitor.CloneVisitor; import com.github.javaparser.metamodel.FieldAccessExprMetaModel; import com.github.javaparser.metamodel.JavaParserMetaModel; - import javax.annotation.Generated; - import com.github.javaparser.TokenRange; import com.github.javaparser.metamodel.OptionalProperty; import com.github.javaparser.resolution.Resolvable; import com.github.javaparser.resolution.UnsolvedSymbolException; import com.github.javaparser.resolution.declarations.ResolvedValueDeclaration; - import java.util.function.Consumer; /** diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/NameExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/NameExpr.java index b36b2e8b7c..c6398bc39b 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/NameExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/NameExpr.java @@ -26,22 +26,17 @@ import com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt; import com.github.javaparser.ast.visitor.GenericVisitor; import com.github.javaparser.ast.visitor.VoidVisitor; - import static com.github.javaparser.utils.Utils.assertNotNull; - import com.github.javaparser.ast.Node; import com.github.javaparser.ast.visitor.CloneVisitor; import com.github.javaparser.metamodel.NameExprMetaModel; import com.github.javaparser.metamodel.JavaParserMetaModel; - import javax.annotation.Generated; - import com.github.javaparser.TokenRange; import com.github.javaparser.resolution.Resolvable; import com.github.javaparser.resolution.UnsolvedSymbolException; import com.github.javaparser.resolution.declarations.ResolvedValueDeclaration; import com.github.javaparser.resolution.types.ResolvedUnionType; - import java.util.function.Consumer; import java.util.Optional; diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ObjectCreationExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ObjectCreationExpr.java index 34a4fdb6cd..cca3a59456 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ObjectCreationExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ObjectCreationExpr.java @@ -45,7 +45,6 @@ import com.github.javaparser.resolution.Resolvable; import com.github.javaparser.resolution.UnsolvedSymbolException; import com.github.javaparser.resolution.declarations.ResolvedConstructorDeclaration; - import java.util.function.Consumer; /** diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleDeclaration.java b/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleDeclaration.java index 0a80584d57..e4775689ad 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleDeclaration.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleDeclaration.java @@ -14,14 +14,10 @@ import com.github.javaparser.ast.visitor.VoidVisitor; import com.github.javaparser.metamodel.JavaParserMetaModel; import com.github.javaparser.metamodel.ModuleDeclarationMetaModel; - import java.util.Arrays; import java.util.List; - import static com.github.javaparser.utils.Utils.assertNotNull; - import javax.annotation.Generated; - import com.github.javaparser.TokenRange; /** diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleExportsStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleExportsStmt.java index b2d461256b..663c954d35 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleExportsStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleExportsStmt.java @@ -11,7 +11,6 @@ import com.github.javaparser.ast.visitor.VoidVisitor; import com.github.javaparser.metamodel.JavaParserMetaModel; import com.github.javaparser.metamodel.ModuleExportsStmtMetaModel; - import static com.github.javaparser.JavaParser.parseName; import static com.github.javaparser.utils.Utils.assertNotNull; import javax.annotation.Generated; diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleProvidesStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleProvidesStmt.java index 21a2daa7e3..c857f592ee 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleProvidesStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleProvidesStmt.java @@ -3,7 +3,8 @@ import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.Node; import com.github.javaparser.ast.NodeList; -import com.github.javaparser.ast.nodeTypes.NodeWithType; +import com.github.javaparser.ast.expr.Name; +import com.github.javaparser.ast.nodeTypes.NodeWithName; import com.github.javaparser.ast.observer.ObservableProperty; import com.github.javaparser.ast.type.ClassOrInterfaceType; import com.github.javaparser.ast.type.Type; @@ -12,8 +13,6 @@ import com.github.javaparser.ast.visitor.VoidVisitor; import com.github.javaparser.metamodel.JavaParserMetaModel; import com.github.javaparser.metamodel.ModuleProvidesStmtMetaModel; -import java.util.Arrays; -import java.util.List; import static com.github.javaparser.utils.Utils.assertNotNull; import javax.annotation.Generated; import com.github.javaparser.TokenRange; @@ -23,29 +22,29 @@ /** * A provides directive in module-info.java. provides X.Y with Z1.Z2, Z3.Z4; */ -public final class ModuleProvidesStmt extends ModuleStmt implements NodeWithType { +public final class ModuleProvidesStmt extends ModuleStmt implements NodeWithName { - private Type type; + private Name name; - private NodeList withTypes; + private NodeList with; public ModuleProvidesStmt() { - this(null, new ClassOrInterfaceType(), new NodeList<>()); + this(null, new Name(), new NodeList<>()); } @AllFieldsConstructor - public ModuleProvidesStmt(Type type, NodeList withTypes) { - this(null, type, withTypes); + public ModuleProvidesStmt(Name name, NodeList with) { + this(null, name, with); } /** * This constructor is used by the parser and is considered private. */ @Generated("com.github.javaparser.generator.core.node.MainConstructorGenerator") - public ModuleProvidesStmt(TokenRange tokenRange, Type type, NodeList withTypes) { + public ModuleProvidesStmt(TokenRange tokenRange, Name name, NodeList with) { super(tokenRange); - setType(type); - setWithTypes(withTypes); + setName(name); + setWith(with); customInitialization(); } @@ -66,53 +65,15 @@ public void accept(final VoidVisitor v, final A arg) { public boolean remove(Node node) { if (node == null) return false; - for (int i = 0; i < withTypes.size(); i++) { - if (withTypes.get(i) == node) { - withTypes.remove(i); + for (int i = 0; i < with.size(); i++) { + if (with.get(i) == node) { + with.remove(i); return true; } } return super.remove(node); } - @Generated("com.github.javaparser.generator.core.node.PropertyGenerator") - public Type getType() { - return type; - } - - @Generated("com.github.javaparser.generator.core.node.PropertyGenerator") - public ModuleProvidesStmt setType(final Type type) { - assertNotNull(type); - if (type == this.type) { - return (ModuleProvidesStmt) this; - } - notifyPropertyChange(ObservableProperty.TYPE, this.type, type); - if (this.type != null) - this.type.setParentNode(null); - this.type = type; - setAsParentNodeOf(type); - return this; - } - - @Generated("com.github.javaparser.generator.core.node.PropertyGenerator") - public NodeList getWithTypes() { - return withTypes; - } - - @Generated("com.github.javaparser.generator.core.node.PropertyGenerator") - public ModuleProvidesStmt setWithTypes(final NodeList withTypes) { - assertNotNull(withTypes); - if (withTypes == this.withTypes) { - return (ModuleProvidesStmt) this; - } - notifyPropertyChange(ObservableProperty.WITH_TYPES, this.withTypes, withTypes); - if (this.withTypes != null) - this.withTypes.setParentNode(null); - this.withTypes = withTypes; - setAsParentNodeOf(withTypes); - return this; - } - @Override @Generated("com.github.javaparser.generator.core.node.CloneGenerator") public ModuleProvidesStmt clone() { @@ -125,24 +86,6 @@ public ModuleProvidesStmtMetaModel getMetaModel() { return JavaParserMetaModel.moduleProvidesStmtMetaModel; } - @Override - @Generated("com.github.javaparser.generator.core.node.ReplaceMethodGenerator") - public boolean replace(Node node, Node replacementNode) { - if (node == null) - return false; - if (node == type) { - setType((Type) replacementNode); - return true; - } - for (int i = 0; i < withTypes.size(); i++) { - if (withTypes.get(i) == node) { - withTypes.set(i, (Type) replacementNode); - return true; - } - } - return super.replace(node, replacementNode); - } - @Override @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator") public boolean isModuleProvidesStmt() { @@ -165,4 +108,59 @@ public void ifModuleProvidesStmt(Consumer action) { public Optional toModuleProvidesStmt() { return Optional.of(this); } + + @Generated("com.github.javaparser.generator.core.node.PropertyGenerator") + public Name getName() { + return name; + } + + @Generated("com.github.javaparser.generator.core.node.PropertyGenerator") + public ModuleProvidesStmt setName(final Name name) { + assertNotNull(name); + if (name == this.name) { + return (ModuleProvidesStmt) this; + } + notifyPropertyChange(ObservableProperty.NAME, this.name, name); + if (this.name != null) + this.name.setParentNode(null); + this.name = name; + setAsParentNodeOf(name); + return this; + } + + @Generated("com.github.javaparser.generator.core.node.PropertyGenerator") + public ModuleProvidesStmt setWith(final NodeList with) { + assertNotNull(with); + if (with == this.with) { + return (ModuleProvidesStmt) this; + } + notifyPropertyChange(ObservableProperty.WITH, this.with, with); + if (this.with != null) + this.with.setParentNode(null); + this.with = with; + setAsParentNodeOf(with); + return this; + } + + @Generated("com.github.javaparser.generator.core.node.PropertyGenerator") + public NodeList getWith() { + return with; + } + + @Override + public boolean replace(Node node, Node replacementNode) { + if (node == null) + return false; + if (node == name) { + setName((Name) replacementNode); + return true; + } + for (int i = 0; i < with.size(); i++) { + if (with.get(i) == node) { + with.set(i, (Name) replacementNode); + return true; + } + } + return super.replace(node, replacementNode); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleUsesStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleUsesStmt.java index 034080d9eb..f9aa4c0d4c 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleUsesStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/modules/ModuleUsesStmt.java @@ -1,45 +1,44 @@ package com.github.javaparser.ast.modules; +import com.github.javaparser.TokenRange; import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.Node; -import com.github.javaparser.ast.nodeTypes.NodeWithType; +import com.github.javaparser.ast.expr.Name; +import com.github.javaparser.ast.nodeTypes.NodeWithName; import com.github.javaparser.ast.observer.ObservableProperty; -import com.github.javaparser.ast.type.ClassOrInterfaceType; -import com.github.javaparser.ast.type.Type; import com.github.javaparser.ast.visitor.CloneVisitor; import com.github.javaparser.ast.visitor.GenericVisitor; import com.github.javaparser.ast.visitor.VoidVisitor; import com.github.javaparser.metamodel.JavaParserMetaModel; import com.github.javaparser.metamodel.ModuleUsesStmtMetaModel; -import static com.github.javaparser.utils.Utils.assertNotNull; import javax.annotation.Generated; -import com.github.javaparser.TokenRange; -import java.util.function.Consumer; import java.util.Optional; +import java.util.function.Consumer; +import static com.github.javaparser.utils.Utils.assertNotNull; /** * A uses directive in module-info.java. uses V.W; */ -public final class ModuleUsesStmt extends ModuleStmt implements NodeWithType { +public final class ModuleUsesStmt extends ModuleStmt implements NodeWithName { - private Type type; + private Name name; public ModuleUsesStmt() { - this(null, new ClassOrInterfaceType()); + this(null, new Name()); } @AllFieldsConstructor - public ModuleUsesStmt(Type type) { - this(null, type); + public ModuleUsesStmt(Name name) { + this(null, name); } /** * This constructor is used by the parser and is considered private. */ @Generated("com.github.javaparser.generator.core.node.MainConstructorGenerator") - public ModuleUsesStmt(TokenRange tokenRange, Type type) { + public ModuleUsesStmt(TokenRange tokenRange, Name name) { super(tokenRange); - setType(type); + setName(name); customInitialization(); } @@ -64,21 +63,16 @@ public boolean remove(Node node) { } @Generated("com.github.javaparser.generator.core.node.PropertyGenerator") - public Type getType() { - return type; - } - - @Generated("com.github.javaparser.generator.core.node.PropertyGenerator") - public ModuleUsesStmt setType(final Type type) { - assertNotNull(type); - if (type == this.type) { + public ModuleUsesStmt setType(final Name name) { + assertNotNull(name); + if (name == this.name) { return (ModuleUsesStmt) this; } - notifyPropertyChange(ObservableProperty.TYPE, this.type, type); - if (this.type != null) - this.type.setParentNode(null); - this.type = type; - setAsParentNodeOf(type); + notifyPropertyChange(ObservableProperty.TYPE, this.name, name); + if (this.name != null) + this.name.setParentNode(null); + this.name = name; + setAsParentNodeOf(name); return this; } @@ -94,18 +88,6 @@ public ModuleUsesStmtMetaModel getMetaModel() { return JavaParserMetaModel.moduleUsesStmtMetaModel; } - @Override - @Generated("com.github.javaparser.generator.core.node.ReplaceMethodGenerator") - public boolean replace(Node node, Node replacementNode) { - if (node == null) - return false; - if (node == type) { - setType((Type) replacementNode); - return true; - } - return super.replace(node, replacementNode); - } - @Override @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator") public boolean isModuleUsesStmt() { @@ -128,4 +110,34 @@ public void ifModuleUsesStmt(Consumer action) { public Optional toModuleUsesStmt() { return Optional.of(this); } + + @Generated("com.github.javaparser.generator.core.node.PropertyGenerator") + public Name getName() { + return name; + } + + @Generated("com.github.javaparser.generator.core.node.PropertyGenerator") + public ModuleUsesStmt setName(final Name name) { + assertNotNull(name); + if (name == this.name) { + return (ModuleUsesStmt) this; + } + notifyPropertyChange(ObservableProperty.NAME, this.name, name); + if (this.name != null) + this.name.setParentNode(null); + this.name = name; + setAsParentNodeOf(name); + return this; + } + + @Override + public boolean replace(Node node, Node replacementNode) { + if (node == null) + return false; + if (node == name) { + setName((Name) replacementNode); + return true; + } + return super.replace(node, replacementNode); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/observer/ObservableProperty.java b/javaparser-core/src/main/java/com/github/javaparser/ast/observer/ObservableProperty.java index d7f82f36ce..b88500a4a4 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/observer/ObservableProperty.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/observer/ObservableProperty.java @@ -117,7 +117,7 @@ public enum ObservableProperty { VARIABLES(Type.MULTIPLE_REFERENCE), VAR_ARGS(Type.SINGLE_ATTRIBUTE), VAR_ARGS_ANNOTATIONS(Type.MULTIPLE_REFERENCE), - WITH_TYPES(Type.MULTIPLE_REFERENCE), + WITH(Type.MULTIPLE_REFERENCE), CASCADING_IF_STMT(Type.SINGLE_ATTRIBUTE, true), ELSE_BLOCK(Type.SINGLE_ATTRIBUTE, true), ELSE_BRANCH(Type.SINGLE_ATTRIBUTE, true), diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ExplicitConstructorInvocationStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ExplicitConstructorInvocationStmt.java index 5f59b6cf90..c752821a7f 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ExplicitConstructorInvocationStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ExplicitConstructorInvocationStmt.java @@ -29,27 +29,21 @@ import com.github.javaparser.ast.type.Type; import com.github.javaparser.ast.visitor.GenericVisitor; import com.github.javaparser.ast.visitor.VoidVisitor; - import java.util.Arrays; import java.util.List; import java.util.Optional; - import static com.github.javaparser.utils.Utils.assertNotNull; - import com.github.javaparser.ast.Node; import com.github.javaparser.ast.visitor.CloneVisitor; import com.github.javaparser.metamodel.ExplicitConstructorInvocationStmtMetaModel; import com.github.javaparser.metamodel.JavaParserMetaModel; - import javax.annotation.Generated; - import com.github.javaparser.TokenRange; import com.github.javaparser.metamodel.OptionalProperty; import com.github.javaparser.resolution.Resolvable; import com.github.javaparser.resolution.UnsolvedSymbolException; import com.github.javaparser.resolution.declarations.ResolvedConstructorDeclaration; import com.github.javaparser.resolution.declarations.ResolvedMethodDeclaration; - import java.util.function.Consumer; /** diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/CloneVisitor.java b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/CloneVisitor.java index 4ae343ac6b..f82571a402 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/CloneVisitor.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/CloneVisitor.java @@ -1019,10 +1019,10 @@ public Visitable visit(final ModuleExportsStmt n, final Object arg) { @Override @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator") public Visitable visit(final ModuleProvidesStmt n, final Object arg) { - Type type = cloneNode(n.getType(), arg); - NodeList withTypes = cloneList(n.getWithTypes(), arg); + Name name = cloneNode(n.getName(), arg); + NodeList with = cloneList(n.getWith(), arg); Comment comment = cloneNode(n.getComment(), arg); - ModuleProvidesStmt r = new ModuleProvidesStmt(n.getTokenRange().orElse(null), type, withTypes); + ModuleProvidesStmt r = new ModuleProvidesStmt(n.getTokenRange().orElse(null), name, with); r.setComment(comment); return r; } @@ -1030,9 +1030,9 @@ public Visitable visit(final ModuleProvidesStmt n, final Object arg) { @Override @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator") public Visitable visit(final ModuleUsesStmt n, final Object arg) { - Type type = cloneNode(n.getType(), arg); + Name name = cloneNode(n.getName(), arg); Comment comment = cloneNode(n.getComment(), arg); - ModuleUsesStmt r = new ModuleUsesStmt(n.getTokenRange().orElse(null), type); + ModuleUsesStmt r = new ModuleUsesStmt(n.getTokenRange().orElse(null), name); r.setComment(comment); return r; } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/EqualsVisitor.java b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/EqualsVisitor.java index 2062185a1e..656da79bda 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/EqualsVisitor.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/EqualsVisitor.java @@ -1320,9 +1320,9 @@ public Boolean visit(final ModuleExportsStmt n, final Visitable arg) { @Generated("com.github.javaparser.generator.core.visitor.EqualsVisitorGenerator") public Boolean visit(final ModuleProvidesStmt n, final Visitable arg) { final ModuleProvidesStmt n2 = (ModuleProvidesStmt) arg; - if (!nodeEquals(n.getType(), n2.getType())) + if (!nodeEquals(n.getName(), n2.getName())) return false; - if (!nodesEquals(n.getWithTypes(), n2.getWithTypes())) + if (!nodesEquals(n.getWith(), n2.getWith())) return false; if (!nodeEquals(n.getComment(), n2.getComment())) return false; @@ -1333,7 +1333,7 @@ public Boolean visit(final ModuleProvidesStmt n, final Visitable arg) { @Generated("com.github.javaparser.generator.core.visitor.EqualsVisitorGenerator") public Boolean visit(final ModuleUsesStmt n, final Visitable arg) { final ModuleUsesStmt n2 = (ModuleUsesStmt) arg; - if (!nodeEquals(n.getType(), n2.getType())) + if (!nodeEquals(n.getName(), n2.getName())) return false; if (!nodeEquals(n.getComment(), n2.getComment())) return false; diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/GenericListVisitorAdapter.java b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/GenericListVisitorAdapter.java index 2defdfa9f9..2fcd42bf4f 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/GenericListVisitorAdapter.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/GenericListVisitorAdapter.java @@ -1948,12 +1948,12 @@ public List visit(final ModuleProvidesStmt n, final A arg) { List result = new ArrayList<>(); List tmp; { - tmp = n.getType().accept(this, arg); + tmp = n.getName().accept(this, arg); if (tmp != null) result.addAll(tmp); } { - tmp = n.getWithTypes().accept(this, arg); + tmp = n.getWith().accept(this, arg); if (tmp != null) result.addAll(tmp); } @@ -1989,7 +1989,7 @@ public List visit(final ModuleUsesStmt n, final A arg) { List result = new ArrayList<>(); List tmp; { - tmp = n.getType().accept(this, arg); + tmp = n.getName().accept(this, arg); if (tmp != null) result.addAll(tmp); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/GenericVisitorAdapter.java b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/GenericVisitorAdapter.java index 3d5de4fbb6..2047038efa 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/GenericVisitorAdapter.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/GenericVisitorAdapter.java @@ -1941,12 +1941,12 @@ public R visit(final ModuleExportsStmt n, final A arg) { public R visit(final ModuleProvidesStmt n, final A arg) { R result; { - result = n.getType().accept(this, arg); + result = n.getName().accept(this, arg); if (result != null) return result; } { - result = n.getWithTypes().accept(this, arg); + result = n.getWith().accept(this, arg); if (result != null) return result; } @@ -1963,7 +1963,7 @@ public R visit(final ModuleProvidesStmt n, final A arg) { public R visit(final ModuleUsesStmt n, final A arg) { R result; { - result = n.getType().accept(this, arg); + result = n.getName().accept(this, arg); if (result != null) return result; } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/HashCodeVisitor.java b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/HashCodeVisitor.java index 92da13e8fc..66032b22b0 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/HashCodeVisitor.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/HashCodeVisitor.java @@ -484,13 +484,13 @@ public Integer visit(final ModuleExportsStmt n, final Void arg) { @Override() @Generated("com.github.javaparser.generator.core.visitor.HashCodeVisitorGenerator") public Integer visit(final ModuleProvidesStmt n, final Void arg) { - return (n.getType().accept(this, arg)) * 31 + (n.getWithTypes().accept(this, arg)) * 31 + (n.getComment().isPresent() ? n.getComment().get().accept(this, arg) : 0); + return (n.getName().accept(this, arg)) * 31 + (n.getWith().accept(this, arg)) * 31 + (n.getComment().isPresent() ? n.getComment().get().accept(this, arg) : 0); } @Override() @Generated("com.github.javaparser.generator.core.visitor.HashCodeVisitorGenerator") public Integer visit(final ModuleUsesStmt n, final Void arg) { - return (n.getType().accept(this, arg)) * 31 + (n.getComment().isPresent() ? n.getComment().get().accept(this, arg) : 0); + return (n.getName().accept(this, arg)) * 31 + (n.getComment().isPresent() ? n.getComment().get().accept(this, arg) : 0); } @Override diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/ModifierVisitor.java b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/ModifierVisitor.java index c7808641d2..105fdd3651 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/ModifierVisitor.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/ModifierVisitor.java @@ -1225,13 +1225,13 @@ public Visitable visit(final ModuleExportsStmt n, final A arg) { @Override() @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final ModuleProvidesStmt n, final A arg) { - Type type = (Type) n.getType().accept(this, arg); - NodeList withTypes = modifyList(n.getWithTypes(), arg); + Name name = (Name) n.getName().accept(this, arg); + NodeList with = modifyList(n.getWith(), arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); - if (type == null) + if (name == null) return null; - n.setType(type); - n.setWithTypes(withTypes); + n.setName(name); + n.setWith(with); n.setComment(comment); return n; } @@ -1239,11 +1239,11 @@ public Visitable visit(final ModuleProvidesStmt n, final A arg) { @Override() @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final ModuleUsesStmt n, final A arg) { - Type type = (Type) n.getType().accept(this, arg); + Name name = (Name) n.getName().accept(this, arg); Comment comment = n.getComment().map(s -> (Comment) s.accept(this, arg)).orElse(null); - if (type == null) + if (name == null) return null; - n.setType(type); + n.setName(name); n.setComment(comment); return n; } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/NoCommentEqualsVisitor.java b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/NoCommentEqualsVisitor.java index b3c1dceffe..c114cc24d4 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/NoCommentEqualsVisitor.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/NoCommentEqualsVisitor.java @@ -1098,9 +1098,9 @@ public Boolean visit(final ModuleExportsStmt n, final Visitable arg) { @Generated("com.github.javaparser.generator.core.visitor.NoCommentEqualsVisitorGenerator") public Boolean visit(final ModuleProvidesStmt n, final Visitable arg) { final ModuleProvidesStmt n2 = (ModuleProvidesStmt) arg; - if (!nodeEquals(n.getType(), n2.getType())) + if (!nodeEquals(n.getName(), n2.getName())) return false; - if (!nodesEquals(n.getWithTypes(), n2.getWithTypes())) + if (!nodesEquals(n.getWith(), n2.getWith())) return false; return true; } @@ -1109,7 +1109,7 @@ public Boolean visit(final ModuleProvidesStmt n, final Visitable arg) { @Generated("com.github.javaparser.generator.core.visitor.NoCommentEqualsVisitorGenerator") public Boolean visit(final ModuleUsesStmt n, final Visitable arg) { final ModuleUsesStmt n2 = (ModuleUsesStmt) arg; - if (!nodeEquals(n.getType(), n2.getType())) + if (!nodeEquals(n.getName(), n2.getName())) return false; return true; } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/NoCommentHashCodeVisitor.java b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/NoCommentHashCodeVisitor.java index 774e5d9148..ba50c35ed4 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/NoCommentHashCodeVisitor.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/NoCommentHashCodeVisitor.java @@ -476,13 +476,13 @@ public Integer visit(final ModuleExportsStmt n, final Void arg) { @Override() @Generated("com.github.javaparser.generator.core.visitor.NoCommentHashCodeVisitorGenerator") public Integer visit(final ModuleProvidesStmt n, final Void arg) { - return (n.getType().accept(this, arg)) * 31 + (n.getWithTypes().accept(this, arg)); + return (n.getName().accept(this, arg)) * 31 + (n.getWith().accept(this, arg)); } @Override() @Generated("com.github.javaparser.generator.core.visitor.NoCommentHashCodeVisitorGenerator") public Integer visit(final ModuleUsesStmt n, final Void arg) { - return (n.getType().accept(this, arg)); + return (n.getName().accept(this, arg)); } @Override diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/VoidVisitorAdapter.java b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/VoidVisitorAdapter.java index 1ee82669ad..5059b1279e 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/VoidVisitorAdapter.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/VoidVisitorAdapter.java @@ -730,15 +730,15 @@ public void visit(final ModuleExportsStmt n, final A arg) { @Override @Generated("com.github.javaparser.generator.core.visitor.VoidVisitorAdapterGenerator") public void visit(final ModuleProvidesStmt n, final A arg) { - n.getType().accept(this, arg); - n.getWithTypes().forEach(p -> p.accept(this, arg)); + n.getName().accept(this, arg); + n.getWith().forEach(p -> p.accept(this, arg)); n.getComment().ifPresent(l -> l.accept(this, arg)); } @Override @Generated("com.github.javaparser.generator.core.visitor.VoidVisitorAdapterGenerator") public void visit(final ModuleUsesStmt n, final A arg) { - n.getType().accept(this, arg); + n.getName().accept(this, arg); n.getComment().ifPresent(l -> l.accept(this, arg)); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/JavaParserMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/JavaParserMetaModel.java index bffbd3711f..68d7078f0a 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/JavaParserMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/JavaParserMetaModel.java @@ -239,9 +239,9 @@ private static void initializeConstructorParameters() { moduleRequiresStmtMetaModel.getConstructorParameters().add(moduleRequiresStmtMetaModel.namePropertyMetaModel); moduleExportsStmtMetaModel.getConstructorParameters().add(moduleExportsStmtMetaModel.namePropertyMetaModel); moduleExportsStmtMetaModel.getConstructorParameters().add(moduleExportsStmtMetaModel.moduleNamesPropertyMetaModel); - moduleProvidesStmtMetaModel.getConstructorParameters().add(moduleProvidesStmtMetaModel.typePropertyMetaModel); - moduleProvidesStmtMetaModel.getConstructorParameters().add(moduleProvidesStmtMetaModel.withTypesPropertyMetaModel); - moduleUsesStmtMetaModel.getConstructorParameters().add(moduleUsesStmtMetaModel.typePropertyMetaModel); + moduleProvidesStmtMetaModel.getConstructorParameters().add(moduleProvidesStmtMetaModel.namePropertyMetaModel); + moduleProvidesStmtMetaModel.getConstructorParameters().add(moduleProvidesStmtMetaModel.withPropertyMetaModel); + moduleUsesStmtMetaModel.getConstructorParameters().add(moduleUsesStmtMetaModel.namePropertyMetaModel); moduleOpensStmtMetaModel.getConstructorParameters().add(moduleOpensStmtMetaModel.namePropertyMetaModel); moduleOpensStmtMetaModel.getConstructorParameters().add(moduleOpensStmtMetaModel.moduleNamesPropertyMetaModel); } @@ -740,12 +740,12 @@ private static void initializePropertyMetaModels() { moduleExportsStmtMetaModel.getDeclaredPropertyMetaModels().add(moduleExportsStmtMetaModel.moduleNamesPropertyMetaModel); moduleExportsStmtMetaModel.namePropertyMetaModel = new PropertyMetaModel(moduleExportsStmtMetaModel, "name", com.github.javaparser.ast.expr.Name.class, Optional.of(nameMetaModel), false, false, false, false, false); moduleExportsStmtMetaModel.getDeclaredPropertyMetaModels().add(moduleExportsStmtMetaModel.namePropertyMetaModel); - moduleProvidesStmtMetaModel.typePropertyMetaModel = new PropertyMetaModel(moduleProvidesStmtMetaModel, "type", com.github.javaparser.ast.type.Type.class, Optional.of(typeMetaModel), false, false, false, false, false); - moduleProvidesStmtMetaModel.getDeclaredPropertyMetaModels().add(moduleProvidesStmtMetaModel.typePropertyMetaModel); - moduleProvidesStmtMetaModel.withTypesPropertyMetaModel = new PropertyMetaModel(moduleProvidesStmtMetaModel, "withTypes", com.github.javaparser.ast.type.Type.class, Optional.of(typeMetaModel), false, false, true, false, false); - moduleProvidesStmtMetaModel.getDeclaredPropertyMetaModels().add(moduleProvidesStmtMetaModel.withTypesPropertyMetaModel); - moduleUsesStmtMetaModel.typePropertyMetaModel = new PropertyMetaModel(moduleUsesStmtMetaModel, "type", com.github.javaparser.ast.type.Type.class, Optional.of(typeMetaModel), false, false, false, false, false); - moduleUsesStmtMetaModel.getDeclaredPropertyMetaModels().add(moduleUsesStmtMetaModel.typePropertyMetaModel); + moduleProvidesStmtMetaModel.namePropertyMetaModel = new PropertyMetaModel(moduleProvidesStmtMetaModel, "name", com.github.javaparser.ast.expr.Name.class, Optional.of(nameMetaModel), false, false, false, false, false); + moduleProvidesStmtMetaModel.getDeclaredPropertyMetaModels().add(moduleProvidesStmtMetaModel.namePropertyMetaModel); + moduleProvidesStmtMetaModel.withPropertyMetaModel = new PropertyMetaModel(moduleProvidesStmtMetaModel, "with", com.github.javaparser.ast.expr.Name.class, Optional.of(nameMetaModel), false, false, true, false, false); + moduleProvidesStmtMetaModel.getDeclaredPropertyMetaModels().add(moduleProvidesStmtMetaModel.withPropertyMetaModel); + moduleUsesStmtMetaModel.namePropertyMetaModel = new PropertyMetaModel(moduleUsesStmtMetaModel, "name", com.github.javaparser.ast.expr.Name.class, Optional.of(nameMetaModel), false, false, false, false, false); + moduleUsesStmtMetaModel.getDeclaredPropertyMetaModels().add(moduleUsesStmtMetaModel.namePropertyMetaModel); moduleOpensStmtMetaModel.moduleNamesPropertyMetaModel = new PropertyMetaModel(moduleOpensStmtMetaModel, "moduleNames", com.github.javaparser.ast.expr.Name.class, Optional.of(nameMetaModel), false, false, true, false, false); moduleOpensStmtMetaModel.getDeclaredPropertyMetaModels().add(moduleOpensStmtMetaModel.moduleNamesPropertyMetaModel); moduleOpensStmtMetaModel.namePropertyMetaModel = new PropertyMetaModel(moduleOpensStmtMetaModel, "name", com.github.javaparser.ast.expr.Name.class, Optional.of(nameMetaModel), false, false, false, false, false); diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ModuleProvidesStmtMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ModuleProvidesStmtMetaModel.java index 2c3bffc1a9..bfe85f1ea6 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ModuleProvidesStmtMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ModuleProvidesStmtMetaModel.java @@ -8,7 +8,7 @@ public class ModuleProvidesStmtMetaModel extends ModuleStmtMetaModel { super(superBaseNodeMetaModel, com.github.javaparser.ast.modules.ModuleProvidesStmt.class, "ModuleProvidesStmt", "com.github.javaparser.ast.modules", false, false); } - public PropertyMetaModel typePropertyMetaModel; + public PropertyMetaModel namePropertyMetaModel; - public PropertyMetaModel withTypesPropertyMetaModel; + public PropertyMetaModel withPropertyMetaModel; } diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ModuleUsesStmtMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ModuleUsesStmtMetaModel.java index bac9043562..b5212a4747 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/ModuleUsesStmtMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/ModuleUsesStmtMetaModel.java @@ -8,5 +8,5 @@ public class ModuleUsesStmtMetaModel extends ModuleStmtMetaModel { super(superBaseNodeMetaModel, com.github.javaparser.ast.modules.ModuleUsesStmt.class, "ModuleUsesStmt", "com.github.javaparser.ast.modules", false, false); } - public PropertyMetaModel typePropertyMetaModel; + public PropertyMetaModel namePropertyMetaModel; } diff --git a/javaparser-core/src/main/java/com/github/javaparser/printer/ConcreteSyntaxModel.java b/javaparser-core/src/main/java/com/github/javaparser/printer/ConcreteSyntaxModel.java index a9cec25c17..3ed4ae3946 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/printer/ConcreteSyntaxModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/printer/ConcreteSyntaxModel.java @@ -887,8 +887,8 @@ private static CsmElement typeArguments() { concreteSyntaxModelByClass.put(ModuleProvidesStmt.class, sequence( token(GeneratedJavaParserConstants.PROVIDES), space(), - child(ObservableProperty.TYPE), - list(ObservableProperty.WITH_TYPES, + child(ObservableProperty.NAME), + list(ObservableProperty.WITH, sequence(comma(), space()), sequence(space(), token(GeneratedJavaParserConstants.WITH), space()), none()), @@ -908,7 +908,7 @@ private static CsmElement typeArguments() { concreteSyntaxModelByClass.put(ModuleUsesStmt.class, sequence( token(GeneratedJavaParserConstants.USES), space(), - child(ObservableProperty.TYPE), + child(ObservableProperty.NAME), semicolon(), newline() )); diff --git a/javaparser-core/src/main/java/com/github/javaparser/printer/PrettyPrintVisitor.java b/javaparser-core/src/main/java/com/github/javaparser/printer/PrettyPrintVisitor.java index 336e120f3c..77e2908a8c 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/printer/PrettyPrintVisitor.java +++ b/javaparser-core/src/main/java/com/github/javaparser/printer/PrettyPrintVisitor.java @@ -1597,15 +1597,15 @@ public void visit(ModuleExportsStmt n, Void arg) { @Override public void visit(ModuleProvidesStmt n, Void arg) { printer.print("provides "); - n.getType().accept(this, arg); - printPrePostFixRequiredList(n.getWithTypes(), arg, " with ", ", ", ""); + n.getName().accept(this, arg); + printPrePostFixRequiredList(n.getWith(), arg, " with ", ", ", ""); printer.println(";"); } @Override public void visit(ModuleUsesStmt n, Void arg) { printer.print("uses "); - n.getType().accept(this, arg); + n.getName().accept(this, arg); printer.println(";"); } diff --git a/javaparser-core/src/main/javacc/java.jj b/javaparser-core/src/main/javacc/java.jj index 0cc6b99360..4358966055 100644 --- a/javaparser-core/src/main/javacc/java.jj +++ b/javaparser-core/src/main/javacc/java.jj @@ -2684,9 +2684,6 @@ ModuleStmt ModuleStmt(): Name name; Name tmpName; NodeList names=emptyList(); - Type type; - Type tmpType; - NodeList types=emptyList(); JavaToken begin; ModuleStmt stmt=new ModuleRequiresStmt(); JavaToken transitiveExceptionalToken; @@ -2703,9 +2700,9 @@ ModuleStmt ModuleStmt(): | {begin=token();} name=Name() [ tmpName=Name() {names.add(tmpName);} ("," tmpName=Name(){names.add(tmpName);} )* ] ";" {stmt=new ModuleOpensStmt(range(begin, token()), name, names);} | - { begin=token();} type=Type(emptyList()) ";" {stmt=new ModuleUsesStmt(range(begin, token()), type);} + { begin=token();} name=Name() ";" {stmt=new ModuleUsesStmt(range(begin, token()), name);} | - { begin=token();} type=Type(emptyList()) tmpType=Type(emptyList()) {types.add(tmpType);} ("," tmpType=Type(emptyList()) {types.add(tmpType);} )* ";" {stmt=new ModuleProvidesStmt(range(begin, token()), type, types);} + { begin=token();} name=Name() tmpName=Name() {names.add(tmpName);} ("," tmpName=Name() {names.add(tmpName);} )* ";" {stmt=new ModuleProvidesStmt(range(begin, token()), name, names);} ) { return stmt; } }