mirror of
https://github.com/aNNiMON/Own-Programming-Language-Tutorial.git
synced 2024-09-20 00:34:20 +03:00
Присвоение значений для map
This commit is contained in:
parent
09556f7a9a
commit
fa2295ad18
@ -85,6 +85,8 @@ for i = 0, i < 4, i = i + 1 {
|
||||
|
||||
// map
|
||||
map = {"+" : add, "-" : sub. "*" : mul, "/" : div}
|
||||
map["%"] = def(x,y) = x % y
|
||||
map["pow"] = def(x,y) = pow(x, y)
|
||||
//print map["+"]
|
||||
print "\n"
|
||||
print function(map["+"], 4, 5)
|
||||
@ -98,3 +100,4 @@ arr2 = [5,6,7]
|
||||
print arr1
|
||||
print "\n"
|
||||
print arr1 << arr2
|
||||
|
||||
|
@ -54,7 +54,7 @@ public final class ArrayAccessExpression implements Expression {
|
||||
}
|
||||
}
|
||||
|
||||
private MapValue consumeMap(Value value) {
|
||||
public MapValue consumeMap(Value value) {
|
||||
if (value instanceof MapValue) {
|
||||
return (MapValue) value;
|
||||
} else {
|
||||
|
@ -1,5 +1,9 @@
|
||||
package com.annimon.ownlang.parser.ast;
|
||||
|
||||
import com.annimon.ownlang.lib.ArrayValue;
|
||||
import com.annimon.ownlang.lib.Value;
|
||||
import com.annimon.ownlang.lib.Variables;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author aNNiMON
|
||||
@ -16,7 +20,12 @@ public final class ArrayAssignmentStatement implements Statement {
|
||||
|
||||
@Override
|
||||
public void execute() {
|
||||
array.getArray().set(array.lastIndex(), expression.eval());
|
||||
final Value container = Variables.get(array.variable);
|
||||
if (container instanceof ArrayValue) {
|
||||
array.getArray().set(array.lastIndex(), expression.eval());
|
||||
return;
|
||||
}
|
||||
array.consumeMap(container).set(array.indices.get(0).eval(), expression.eval());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
Loading…
Reference in New Issue
Block a user