From 9c61b7adad6e96149b1326cb90381206478310c3 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Fri, 1 Apr 2016 21:52:06 +0100 Subject: Move naming classes into their own package --- .../java/org/zwobble/couscous/backends/Names.java | 42 ---------------------- .../java/org/zwobble/couscous/backends/Naming.java | 15 -------- .../org/zwobble/couscous/backends/NoMangling.java | 10 ------ .../backends/SignaturesContainSimpleNames.java | 10 ------ .../backends/csharp/CsharpCodeGenerator.java | 2 +- .../zwobble/couscous/backends/naming/Names.java | 42 ++++++++++++++++++++++ .../zwobble/couscous/backends/naming/Naming.java | 15 ++++++++ .../couscous/backends/naming/NoMangling.java | 10 ++++++ .../naming/SignaturesContainSimpleNames.java | 10 ++++++ .../backends/python/PythonCodeGenerator.java | 2 +- 10 files changed, 79 insertions(+), 79 deletions(-) delete mode 100644 src/main/java/org/zwobble/couscous/backends/Names.java delete mode 100644 src/main/java/org/zwobble/couscous/backends/Naming.java delete mode 100644 src/main/java/org/zwobble/couscous/backends/NoMangling.java delete mode 100644 src/main/java/org/zwobble/couscous/backends/SignaturesContainSimpleNames.java create mode 100644 src/main/java/org/zwobble/couscous/backends/naming/Names.java create mode 100644 src/main/java/org/zwobble/couscous/backends/naming/Naming.java create mode 100644 src/main/java/org/zwobble/couscous/backends/naming/NoMangling.java create mode 100644 src/main/java/org/zwobble/couscous/backends/naming/SignaturesContainSimpleNames.java (limited to 'src/main/java/org') diff --git a/src/main/java/org/zwobble/couscous/backends/Names.java b/src/main/java/org/zwobble/couscous/backends/Names.java deleted file mode 100644 index a9024ac..0000000 --- a/src/main/java/org/zwobble/couscous/backends/Names.java +++ /dev/null @@ -1,42 +0,0 @@ -package org.zwobble.couscous.backends; - -import com.google.common.base.Joiner; -import com.google.common.collect.Iterables; -import org.zwobble.couscous.ast.MethodSignature; -import org.zwobble.couscous.types.*; - -import static com.google.common.collect.Iterables.transform; -import static org.zwobble.couscous.util.ExtraLists.list; - -public class Names { - public static String toUniqueName(MethodSignature signature) { - return Joiner.on("__").join(Iterables.concat( - list(signature.getName()), - transform(signature.getArguments(), Names::typeToString), - list(typeToString(signature.getReturnType())))); - } - - private static String typeToString(Type argument) { - return argument.accept(new Type.Visitor() { - @Override - public String visit(ScalarType type) { - return type.getSimpleName(); - } - - @Override - public String visit(TypeParameter parameter) { - return typeToString(parameter.getDeclaringType()) + "_" + parameter.getName(); - } - - @Override - public String visit(ParameterizedType type) { - return typeToString(type.getRawType()); - } - - @Override - public String visit(BoundTypeParameter type) { - return typeToString(type.getParameter()); - } - }); - } -} diff --git a/src/main/java/org/zwobble/couscous/backends/Naming.java b/src/main/java/org/zwobble/couscous/backends/Naming.java deleted file mode 100644 index 109bc68..0000000 --- a/src/main/java/org/zwobble/couscous/backends/Naming.java +++ /dev/null @@ -1,15 +0,0 @@ -package org.zwobble.couscous.backends; - -import org.zwobble.couscous.ast.MethodSignature; - -public interface Naming { - static Naming signaturesContainSimpleNames() { - return new SignaturesContainSimpleNames(); - } - - static Naming noMangling() { - return new NoMangling(); - } - - String methodName(MethodSignature signature); -} diff --git a/src/main/java/org/zwobble/couscous/backends/NoMangling.java b/src/main/java/org/zwobble/couscous/backends/NoMangling.java deleted file mode 100644 index 3837061..0000000 --- a/src/main/java/org/zwobble/couscous/backends/NoMangling.java +++ /dev/null @@ -1,10 +0,0 @@ -package org.zwobble.couscous.backends; - -import org.zwobble.couscous.ast.MethodSignature; - -public class NoMangling implements Naming { - @Override - public String methodName(MethodSignature signature) { - return signature.getName(); - } -} diff --git a/src/main/java/org/zwobble/couscous/backends/SignaturesContainSimpleNames.java b/src/main/java/org/zwobble/couscous/backends/SignaturesContainSimpleNames.java deleted file mode 100644 index fec7a88..0000000 --- a/src/main/java/org/zwobble/couscous/backends/SignaturesContainSimpleNames.java +++ /dev/null @@ -1,10 +0,0 @@ -package org.zwobble.couscous.backends; - -import org.zwobble.couscous.ast.MethodSignature; - -public class SignaturesContainSimpleNames implements Naming { - @Override - public String methodName(MethodSignature signature) { - return Names.toUniqueName(signature); - } -} diff --git a/src/main/java/org/zwobble/couscous/backends/csharp/CsharpCodeGenerator.java b/src/main/java/org/zwobble/couscous/backends/csharp/CsharpCodeGenerator.java index c3ef019..8bd8b11 100644 --- a/src/main/java/org/zwobble/couscous/backends/csharp/CsharpCodeGenerator.java +++ b/src/main/java/org/zwobble/couscous/backends/csharp/CsharpCodeGenerator.java @@ -6,7 +6,7 @@ import org.zwobble.couscous.ast.MethodCallNode; import org.zwobble.couscous.ast.Node; import org.zwobble.couscous.ast.Receiver; import org.zwobble.couscous.ast.visitors.NodeTransformer; -import org.zwobble.couscous.backends.Naming; +import org.zwobble.couscous.backends.naming.Naming; import org.zwobble.couscous.types.*; import java.util.Map; diff --git a/src/main/java/org/zwobble/couscous/backends/naming/Names.java b/src/main/java/org/zwobble/couscous/backends/naming/Names.java new file mode 100644 index 0000000..a547742 --- /dev/null +++ b/src/main/java/org/zwobble/couscous/backends/naming/Names.java @@ -0,0 +1,42 @@ +package org.zwobble.couscous.backends.naming; + +import com.google.common.base.Joiner; +import com.google.common.collect.Iterables; +import org.zwobble.couscous.ast.MethodSignature; +import org.zwobble.couscous.types.*; + +import static com.google.common.collect.Iterables.transform; +import static org.zwobble.couscous.util.ExtraLists.list; + +public class Names { + public static String toUniqueName(MethodSignature signature) { + return Joiner.on("__").join(Iterables.concat( + list(signature.getName()), + transform(signature.getArguments(), Names::typeToString), + list(typeToString(signature.getReturnType())))); + } + + private static String typeToString(Type argument) { + return argument.accept(new Type.Visitor() { + @Override + public String visit(ScalarType type) { + return type.getSimpleName(); + } + + @Override + public String visit(TypeParameter parameter) { + return typeToString(parameter.getDeclaringType()) + "_" + parameter.getName(); + } + + @Override + public String visit(ParameterizedType type) { + return typeToString(type.getRawType()); + } + + @Override + public String visit(BoundTypeParameter type) { + return typeToString(type.getParameter()); + } + }); + } +} diff --git a/src/main/java/org/zwobble/couscous/backends/naming/Naming.java b/src/main/java/org/zwobble/couscous/backends/naming/Naming.java new file mode 100644 index 0000000..d63fd52 --- /dev/null +++ b/src/main/java/org/zwobble/couscous/backends/naming/Naming.java @@ -0,0 +1,15 @@ +package org.zwobble.couscous.backends.naming; + +import org.zwobble.couscous.ast.MethodSignature; + +public interface Naming { + static Naming signaturesContainSimpleNames() { + return new SignaturesContainSimpleNames(); + } + + static Naming noMangling() { + return new NoMangling(); + } + + String methodName(MethodSignature signature); +} diff --git a/src/main/java/org/zwobble/couscous/backends/naming/NoMangling.java b/src/main/java/org/zwobble/couscous/backends/naming/NoMangling.java new file mode 100644 index 0000000..7a45334 --- /dev/null +++ b/src/main/java/org/zwobble/couscous/backends/naming/NoMangling.java @@ -0,0 +1,10 @@ +package org.zwobble.couscous.backends.naming; + +import org.zwobble.couscous.ast.MethodSignature; + +public class NoMangling implements Naming { + @Override + public String methodName(MethodSignature signature) { + return signature.getName(); + } +} diff --git a/src/main/java/org/zwobble/couscous/backends/naming/SignaturesContainSimpleNames.java b/src/main/java/org/zwobble/couscous/backends/naming/SignaturesContainSimpleNames.java new file mode 100644 index 0000000..9f2a96d --- /dev/null +++ b/src/main/java/org/zwobble/couscous/backends/naming/SignaturesContainSimpleNames.java @@ -0,0 +1,10 @@ +package org.zwobble.couscous.backends.naming; + +import org.zwobble.couscous.ast.MethodSignature; + +public class SignaturesContainSimpleNames implements Naming { + @Override + public String methodName(MethodSignature signature) { + return Names.toUniqueName(signature); + } +} diff --git a/src/main/java/org/zwobble/couscous/backends/python/PythonCodeGenerator.java b/src/main/java/org/zwobble/couscous/backends/python/PythonCodeGenerator.java index 693a06b..a6922e4 100644 --- a/src/main/java/org/zwobble/couscous/backends/python/PythonCodeGenerator.java +++ b/src/main/java/org/zwobble/couscous/backends/python/PythonCodeGenerator.java @@ -11,7 +11,7 @@ import org.zwobble.couscous.types.Type; import org.zwobble.couscous.ast.visitors.ExpressionNodeMapper; import org.zwobble.couscous.ast.visitors.NodeMapperWithDefault; import org.zwobble.couscous.ast.visitors.StatementNodeMapper; -import org.zwobble.couscous.backends.Names; +import org.zwobble.couscous.backends.naming.Names; import org.zwobble.couscous.backends.python.ast.*; import org.zwobble.couscous.types.Types; import org.zwobble.couscous.values.*; -- cgit v1.2.3