Небольшие изменения

This commit is contained in:
Victor 2016-05-26 12:50:43 +03:00
parent af4eddf184
commit 7b92c3f675
3 changed files with 3 additions and 10 deletions

View File

@ -88,13 +88,13 @@ public final class BinaryExpression implements Expression {
private Value add(Value value1, Value value2) {
switch (value1.type()) {
case Types.NUMBER: return add((NumberValue) value1, value2);
case Types.STRING: return new StringValue(value1.asString() + value2.asString());
case Types.ARRAY: return ArrayValue.add((ArrayValue) value1, value2);
case Types.MAP:
if (value2.type() != Types.MAP)
throw new TypeException("Cannot merge non map value to map");
return MapValue.merge((MapValue) value1, (MapValue) value2);
case Types.FUNCTION: /* TODO: combining functions */
case Types.STRING:
default:
// Concatenation strings
return new StringValue(value1.asString() + value2.asString());

View File

@ -89,13 +89,6 @@ public final class ContainerAccessExpression implements Expression, Accessible {
return indices.get(index).eval();
}
private ArrayValue consumeArray(Value value) {
if (value.type() != Types.ARRAY) {
throw new TypeException("Array expected");
}
return (ArrayValue) value;
}
public MapValue consumeMap(Value value) {
if (value.type() != Types.MAP) {
throw new TypeException("Map expected");

View File

@ -20,8 +20,8 @@ public final class MapExpression implements Expression {
public Value eval() {
final int size = elements.size();
final MapValue map = new MapValue(size);
for (Expression key : elements.keySet()) {
map.set(key.eval(), elements.get(key).eval());
for (Map.Entry<Expression, Expression> entry : elements.entrySet()) {
map.set(entry.getKey().eval(), entry.getValue().eval());
}
return map;
}