diff options
| author | Michael Williamson <mike@zwobble.org> | 2016-01-10 20:01:53 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2016-01-10 20:01:53 +0000 |
| commit | 7d4fee9187aeb5f8fede67944402921c9f7bb3f7 (patch) | |
| tree | 2c5ba8c3e11b097df523ed1a7a6b5af9685e5bc1 /src/main | |
| parent | b35303b621aa02f7c74143ae089a722d6934a153 (diff) | |
Simplify primitive value visitor interface
Diffstat (limited to 'src/main')
8 files changed, 33 insertions, 30 deletions
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 c97e950..eb15f60 100644 --- a/src/main/java/org/zwobble/couscous/backends/python/PythonCodeGenerator.java +++ b/src/main/java/org/zwobble/couscous/backends/python/PythonCodeGenerator.java @@ -122,28 +122,28 @@ public class PythonCodeGenerator { return value.accept(new PrimitiveValueVisitor<PythonExpressionNode>(){ @Override - public PythonExpressionNode visit(IntegerValue value) { - return pythonIntegerLiteral(value.getValue()); + public PythonExpressionNode visitInteger(int value) { + return pythonIntegerLiteral(value); } @Override - public PythonExpressionNode visit(StringValue value) { - return pythonStringLiteral(value.getValue()); + public PythonExpressionNode visitString(String value) { + return pythonStringLiteral(value); } @Override - public PythonExpressionNode visit(BooleanValue value) { - return pythonBooleanLiteral(value.getValue()); + public PythonExpressionNode visitBoolean(boolean value) { + return pythonBooleanLiteral(value); } @Override - public PythonExpressionNode visit(UnitValue unitValue) { + public PythonExpressionNode visitUnit() { throw new UnsupportedOperationException(); } @Override - public PythonExpressionNode visit(TypeValue value) { - return typeReference(value.getValue()); + public PythonExpressionNode visitType(TypeName value) { + return typeReference(value); } }); } diff --git a/src/main/java/org/zwobble/couscous/interpreter/values/InterpreterValues.java b/src/main/java/org/zwobble/couscous/interpreter/values/InterpreterValues.java index db33b9d..4e8f1e6 100644 --- a/src/main/java/org/zwobble/couscous/interpreter/values/InterpreterValues.java +++ b/src/main/java/org/zwobble/couscous/interpreter/values/InterpreterValues.java @@ -1,6 +1,8 @@ package org.zwobble.couscous.interpreter.values; -import org.zwobble.couscous.values.*; +import org.zwobble.couscous.ast.TypeName; +import org.zwobble.couscous.values.PrimitiveValue; +import org.zwobble.couscous.values.PrimitiveValueVisitor; public class InterpreterValues { public static final UnitInterpreterValue UNIT = UnitInterpreterValue.UNIT; @@ -18,28 +20,28 @@ public class InterpreterValues { public static InterpreterValue value(PrimitiveValue value) { return value.accept(new PrimitiveValueVisitor<InterpreterValue>() { @Override - public InterpreterValue visit(IntegerValue value) { - return new IntegerInterpreterValue(value.getValue()); + public InterpreterValue visitInteger(int value) { + return new IntegerInterpreterValue(value); } @Override - public InterpreterValue visit(StringValue value) { - return StringInterpreterValue.of(value.getValue()); + public InterpreterValue visitString(String value) { + return StringInterpreterValue.of(value); } @Override - public InterpreterValue visit(BooleanValue value) { - return BooleanInterpreterValue.of(value.getValue()); + public InterpreterValue visitBoolean(boolean value) { + return BooleanInterpreterValue.of(value); } @Override - public InterpreterValue visit(UnitValue unitValue) { + public InterpreterValue visitUnit() { return UNIT; } @Override - public InterpreterValue visit(TypeValue value) { - return TypeInterpreterValue.of(value.getValue()); + public InterpreterValue visitType(TypeName value) { + return TypeInterpreterValue.of(value); } }); } diff --git a/src/main/java/org/zwobble/couscous/values/BooleanValue.java b/src/main/java/org/zwobble/couscous/values/BooleanValue.java index 1d2c0a4..5ceceb2 100644 --- a/src/main/java/org/zwobble/couscous/values/BooleanValue.java +++ b/src/main/java/org/zwobble/couscous/values/BooleanValue.java @@ -1,7 +1,6 @@ package org.zwobble.couscous.values; import org.zwobble.couscous.ast.TypeName; -import org.zwobble.couscous.interpreter.values.InterpreterValue; public final class BooleanValue implements PrimitiveValue { public static final TypeName REF = TypeName.of("boolean"); @@ -13,7 +12,7 @@ public final class BooleanValue implements PrimitiveValue { @Override public <T> T accept(PrimitiveValueVisitor<T> visitor) { - return visitor.visit(this); + return visitor.visitBoolean(value); } @Override diff --git a/src/main/java/org/zwobble/couscous/values/IntegerValue.java b/src/main/java/org/zwobble/couscous/values/IntegerValue.java index e897668..ed0040a 100644 --- a/src/main/java/org/zwobble/couscous/values/IntegerValue.java +++ b/src/main/java/org/zwobble/couscous/values/IntegerValue.java @@ -8,7 +8,7 @@ public final class IntegerValue implements PrimitiveValue { @Override public <T> T accept(PrimitiveValueVisitor<T> visitor) { - return visitor.visit(this); + return visitor.visitInteger(value); } @Override diff --git a/src/main/java/org/zwobble/couscous/values/PrimitiveValueVisitor.java b/src/main/java/org/zwobble/couscous/values/PrimitiveValueVisitor.java index 9b31b05..18b6916 100644 --- a/src/main/java/org/zwobble/couscous/values/PrimitiveValueVisitor.java +++ b/src/main/java/org/zwobble/couscous/values/PrimitiveValueVisitor.java @@ -1,9 +1,11 @@ package org.zwobble.couscous.values; +import org.zwobble.couscous.ast.TypeName; + public interface PrimitiveValueVisitor<T> { - T visit(IntegerValue value); - T visit(StringValue value); - T visit(BooleanValue value); - T visit(UnitValue unitValue); - T visit(TypeValue value); + T visitInteger(int value); + T visitString(String value); + T visitBoolean(boolean value); + T visitUnit(); + T visitType(TypeName value); } diff --git a/src/main/java/org/zwobble/couscous/values/StringValue.java b/src/main/java/org/zwobble/couscous/values/StringValue.java index ff2ad61..d2a0a6a 100644 --- a/src/main/java/org/zwobble/couscous/values/StringValue.java +++ b/src/main/java/org/zwobble/couscous/values/StringValue.java @@ -12,7 +12,7 @@ public final class StringValue implements PrimitiveValue { @Override public <T> T accept(PrimitiveValueVisitor<T> visitor) { - return visitor.visit(this); + return visitor.visitString(value); } @Override diff --git a/src/main/java/org/zwobble/couscous/values/TypeValue.java b/src/main/java/org/zwobble/couscous/values/TypeValue.java index 269839a..663673e 100644 --- a/src/main/java/org/zwobble/couscous/values/TypeValue.java +++ b/src/main/java/org/zwobble/couscous/values/TypeValue.java @@ -15,7 +15,7 @@ public class TypeValue implements PrimitiveValue { @Override public <T> T accept(PrimitiveValueVisitor<T> visitor) { - return visitor.visit(this); + return visitor.visitType(value); } @Override diff --git a/src/main/java/org/zwobble/couscous/values/UnitValue.java b/src/main/java/org/zwobble/couscous/values/UnitValue.java index 9d48b9e..dfa11d4 100644 --- a/src/main/java/org/zwobble/couscous/values/UnitValue.java +++ b/src/main/java/org/zwobble/couscous/values/UnitValue.java @@ -12,7 +12,7 @@ public class UnitValue implements PrimitiveValue { @Override public <T> T accept(PrimitiveValueVisitor<T> visitor) { - return visitor.visit(this); + return visitor.visitUnit(); } @Override |
