diff options
| author | Michael Williamson <mike@zwobble.org> | 2015-10-25 19:18:09 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2015-10-25 19:34:44 +0000 |
| commit | 368f2dd010defaf5f4b6deb70f45285cee8f244d (patch) | |
| tree | 55494f85341f23dd1e588fa070ef863ef7cfdef5 /src/main/java/org/zwobble/couscous/interpreter/Evaluator.java | |
| parent | 060ae04a695df6abac7445df3c5394b59da40f41 (diff) | |
Remove lombok
Diffstat (limited to 'src/main/java/org/zwobble/couscous/interpreter/Evaluator.java')
| -rw-r--r-- | src/main/java/org/zwobble/couscous/interpreter/Evaluator.java | 59 |
1 files changed, 27 insertions, 32 deletions
diff --git a/src/main/java/org/zwobble/couscous/interpreter/Evaluator.java b/src/main/java/org/zwobble/couscous/interpreter/Evaluator.java index 1bc1ab8..2122f01 100644 --- a/src/main/java/org/zwobble/couscous/interpreter/Evaluator.java +++ b/src/main/java/org/zwobble/couscous/interpreter/Evaluator.java @@ -2,7 +2,6 @@ package org.zwobble.couscous.interpreter; import java.util.List; import java.util.stream.Collectors; - import org.zwobble.couscous.ast.AssignmentNode; import org.zwobble.couscous.ast.ConstructorCallNode; import org.zwobble.couscous.ast.ExpressionNode; @@ -16,18 +15,17 @@ import org.zwobble.couscous.ast.VariableReferenceNode; import org.zwobble.couscous.ast.visitors.AssignableExpressionNodeVisitor; import org.zwobble.couscous.ast.visitors.ExpressionNodeMapper; import org.zwobble.couscous.interpreter.values.BooleanInterpreterValue; +import org.zwobble.couscous.interpreter.values.ConcreteType; import org.zwobble.couscous.interpreter.values.InterpreterValue; import org.zwobble.couscous.interpreter.values.InterpreterValues; -import lombok.val; - public class Evaluator implements ExpressionNodeMapper<InterpreterValue> { public static InterpreterValue eval(Environment environment, ExpressionNode expression) { return new Evaluator(environment).eval(expression); } private final Environment environment; - + private Evaluator(Environment environment) { this.environment = environment; } @@ -35,29 +33,29 @@ public class Evaluator implements ExpressionNodeMapper<InterpreterValue> { public InterpreterValue eval(ExpressionNode expression) { return expression.accept(this); } - + @Override public InterpreterValue visit(LiteralNode literal) { return InterpreterValues.value(literal.getValue()); } - + @Override public InterpreterValue visit(VariableReferenceNode variableReference) { return environment.get(variableReference.getReferentId()); } - + @Override public InterpreterValue visit(ThisReferenceNode reference) { return environment.getThis().get(); } - + @Override public InterpreterValue visit(AssignmentNode assignment) { - val value = eval(assignment.getValue()); - assignment.getTarget().accept(new AssignableExpressionNodeVisitor() { + InterpreterValue value = eval(assignment.getValue()); + assignment.getTarget().accept(new AssignableExpressionNodeVisitor(){ @Override public void visit(FieldAccessNode fieldAccess) { - val left = eval(fieldAccess.getLeft()); + InterpreterValue left = eval(fieldAccess.getLeft()); left.setField(fieldAccess.getFieldName(), value); } @@ -68,51 +66,48 @@ public class Evaluator implements ExpressionNodeMapper<InterpreterValue> { }); return value; } - + @Override public InterpreterValue visit(TernaryConditionalNode ternaryConditional) { - val condition = eval(ternaryConditional.getCondition()); + InterpreterValue condition = eval(ternaryConditional.getCondition()); if (!(condition instanceof BooleanInterpreterValue)) { throw new ConditionMustBeBoolean(condition); } - val branch = ((BooleanInterpreterValue)condition).getValue() - ? ternaryConditional.getIfTrue() - : ternaryConditional.getIfFalse(); + final org.zwobble.couscous.ast.ExpressionNode branch = ((BooleanInterpreterValue)condition).getValue() ? ternaryConditional.getIfTrue() : ternaryConditional.getIfFalse(); return eval(branch); } - + @Override public InterpreterValue visit(MethodCallNode methodCall) { - val receiver = eval(methodCall.getReceiver()); - val type = receiver.getType(); - val arguments = evalArguments(methodCall.getArguments()); + InterpreterValue receiver = eval(methodCall.getReceiver()); + ConcreteType type = receiver.getType(); + List<InterpreterValue> arguments = evalArguments(methodCall.getArguments()); return type.callMethod(environment, receiver, methodCall.getMethodName(), arguments); } - + @Override public InterpreterValue visit(StaticMethodCallNode staticMethodCall) { - val clazz = environment.findClass(staticMethodCall.getClassName()); - val arguments = evalArguments(staticMethodCall.getArguments()); + ConcreteType clazz = environment.findClass(staticMethodCall.getClassName()); + List<InterpreterValue> arguments = evalArguments(staticMethodCall.getArguments()); return clazz.callStaticMethod(environment, staticMethodCall.getMethodName(), arguments); } - + @Override public InterpreterValue visit(ConstructorCallNode call) { - val clazz = environment.findClass(call.getType()); - val arguments = evalArguments(call.getArguments()); + ConcreteType clazz = environment.findClass(call.getType()); + List<InterpreterValue> arguments = evalArguments(call.getArguments()); return clazz.callConstructor(environment, arguments); } - + @Override public InterpreterValue visit(FieldAccessNode fieldAccess) { - val left = eval(fieldAccess.getLeft()); + InterpreterValue left = eval(fieldAccess.getLeft()); return left.getField(fieldAccess.getFieldName()); } - + private List<InterpreterValue> evalArguments(List<ExpressionNode> arguments) { - return arguments - .stream() + return arguments.stream() .map(argument -> eval(argument)) .collect(Collectors.toList()); } -} +}
\ No newline at end of file |
