diff options
| author | Michael Williamson <mike@zwobble.org> | 2016-03-21 08:13:45 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2016-03-21 08:13:45 +0000 |
| commit | fe113241971cfe87b163a9eb4dc51e9d5e32410e (patch) | |
| tree | f9e435c44020ffbbb9231df79719a4d407ea8000 /src/main/java/org/zwobble/couscous/backends/csharp | |
| parent | 22f5765125eea28ae158bab4d9e96ae6472b73d4 (diff) | |
Move standard type definitions into a Types class
Diffstat (limited to 'src/main/java/org/zwobble/couscous/backends/csharp')
3 files changed, 17 insertions, 22 deletions
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 dbfb00f..1b64293 100644 --- a/src/main/java/org/zwobble/couscous/backends/csharp/CsharpCodeGenerator.java +++ b/src/main/java/org/zwobble/couscous/backends/csharp/CsharpCodeGenerator.java @@ -5,7 +5,6 @@ import org.zwobble.couscous.ast.*; import org.zwobble.couscous.ast.visitors.NodeTransformer; import org.zwobble.couscous.backends.Names; import org.zwobble.couscous.types.*; -import org.zwobble.couscous.values.*; import java.util.Map; import java.util.Optional; @@ -16,11 +15,11 @@ import static org.zwobble.couscous.util.ExtraLists.eagerMap; public class CsharpCodeGenerator { private final static Map<ScalarType, ScalarType> PRIMITIVES = ImmutableMap.<ScalarType, ScalarType>builder() - .put(IntegerValue.REF, ScalarType.of("int")) - .put(StringValue.REF, ScalarType.of("string")) - .put(BooleanValue.REF, ScalarType.of("bool")) - .put(ObjectValues.CLASS, ScalarType.of("System.Type")) - .put(UnitValue.REF, ScalarType.of("void")) + .put(Types.INT, ScalarType.of("int")) + .put(Types.STRING, ScalarType.of("string")) + .put(Types.BOOLEAN, ScalarType.of("bool")) + .put(Types.CLASS, ScalarType.of("System.Type")) + .put(Types.VOID, ScalarType.of("void")) .build(); private final String namespace; @@ -61,7 +60,7 @@ public class CsharpCodeGenerator { @Override public Type visit(ParameterizedType type) { - if (type.getRawType().equals(ObjectValues.CLASS)) { + if (type.getRawType().equals(Types.CLASS)) { return ScalarType.of("System.Type"); } else { return new ParameterizedType( diff --git a/src/main/java/org/zwobble/couscous/backends/csharp/CsharpPrimitiveMethods.java b/src/main/java/org/zwobble/couscous/backends/csharp/CsharpPrimitiveMethods.java index cb5b027..96f8c00 100644 --- a/src/main/java/org/zwobble/couscous/backends/csharp/CsharpPrimitiveMethods.java +++ b/src/main/java/org/zwobble/couscous/backends/csharp/CsharpPrimitiveMethods.java @@ -3,10 +3,7 @@ package org.zwobble.couscous.backends.csharp; import com.google.common.collect.ImmutableMap; import org.zwobble.couscous.ast.ExpressionNode; import org.zwobble.couscous.types.ScalarType; -import org.zwobble.couscous.values.BooleanValue; -import org.zwobble.couscous.values.IntegerValue; -import org.zwobble.couscous.values.ObjectValues; -import org.zwobble.couscous.values.StringValue; +import org.zwobble.couscous.types.Types; import java.util.List; import java.util.Map; @@ -34,7 +31,7 @@ public class CsharpPrimitiveMethods { receiver, "ToString", list(), - StringValue.REF))); + Types.STRING))); BOXED_INT_METHODS = methods.build(); } @@ -42,7 +39,7 @@ public class CsharpPrimitiveMethods { static { ImmutableMap.Builder<String, PrimitiveMethodGenerator> methods = ImmutableMap.builder(); - methods.put("length", (receiver, arguments) -> fieldAccess(receiver, "Length", IntegerValue.REF)); + methods.put("length", (receiver, arguments) -> fieldAccess(receiver, "Length", Types.INT)); methods.put("substring", (receiver, arguments) -> { ExpressionNode startIndex = arguments.get(0); ExpressionNode endIndex = arguments.get(1); @@ -52,26 +49,26 @@ public class CsharpPrimitiveMethods { receiver, "Substring", list(startIndex, length), - StringValue.REF); + Types.STRING); }); methods.put("toLowerCase", (receiver, arguments) -> methodCall( receiver, "ToLower", list(), - StringValue.REF)); + Types.STRING)); methods.put("equals", (receiver, arguments) -> methodCall( receiver, "Equals", arguments, - StringValue.REF)); + Types.STRING)); STRING_METHODS = methods.build(); } private static final Map<ScalarType, Map<String, PrimitiveMethodGenerator>> METHODS = ImmutableMap.<ScalarType, Map<String, PrimitiveMethodGenerator>>builder() - .put(BooleanValue.REF, BOOLEAN_METHODS) - .put(StringValue.REF, STRING_METHODS) - .put(ObjectValues.BOXED_INT, BOXED_INT_METHODS) + .put(Types.BOOLEAN, BOOLEAN_METHODS) + .put(Types.STRING, STRING_METHODS) + .put(Types.BOXED_INT, BOXED_INT_METHODS) .build(); private static final Map<String, PrimitiveStaticMethodGenerator> STATIC_INT_METHODS = @@ -87,7 +84,7 @@ public class CsharpPrimitiveMethods { private static final Map<ScalarType, Map<String, PrimitiveStaticMethodGenerator>> STATIC_METHODS = ImmutableMap.<ScalarType, Map<String, PrimitiveStaticMethodGenerator>>builder() - .put(ObjectValues.BOXED_INT, STATIC_INT_METHODS) + .put(Types.BOXED_INT, STATIC_INT_METHODS) .build(); public static Optional<PrimitiveMethodGenerator> getPrimitiveMethod(ScalarType type, String methodName) { diff --git a/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java b/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java index 090a19a..9b168ef 100644 --- a/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java +++ b/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java @@ -6,7 +6,6 @@ import org.zwobble.couscous.backends.SourceCodeWriter; import org.zwobble.couscous.types.*; import org.zwobble.couscous.util.Action; import org.zwobble.couscous.values.PrimitiveValue; -import org.zwobble.couscous.values.UnitValue; import java.util.List; @@ -181,7 +180,7 @@ public class CsharpSerializer implements NodeVisitor { public void visit(ReturnNode returnNode) { writer.writeStatement(() -> { writer.writeKeyword("return"); - if (!returnNode.getValue().getType().equals(UnitValue.REF)) { + if (!returnNode.getValue().getType().equals(Types.VOID)) { writer.writeSpace(); write(returnNode.getValue()); } |
