2022-06-03 19:54:31 +02:00
|
|
|
package io.gitlab.jfronny.muscript.compiler.expr;
|
|
|
|
|
|
|
|
import io.gitlab.jfronny.muscript.compiler.*;
|
2022-06-07 12:19:58 +02:00
|
|
|
import io.gitlab.jfronny.muscript.dynamic.*;
|
2022-06-03 19:54:31 +02:00
|
|
|
|
|
|
|
import java.util.*;
|
|
|
|
|
2022-06-07 12:19:58 +02:00
|
|
|
public class Call extends Expr.DynamicExpr {
|
|
|
|
private final DynamicExpr left;
|
|
|
|
private final List<DynamicExpr> args;
|
2022-06-03 19:54:31 +02:00
|
|
|
|
2022-06-07 12:19:58 +02:00
|
|
|
public Call(DynamicExpr left, List<DynamicExpr> args) {
|
2022-06-03 19:54:31 +02:00
|
|
|
this.left = left;
|
|
|
|
this.args = args;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
2022-06-07 12:19:58 +02:00
|
|
|
public Dynamic<?> get(Dynamic<?> branch, Dynamic<?> dataRoot) {
|
|
|
|
return left.get(branch, dataRoot).asCallable().getValue().apply(DFinal.of(args.stream().map(e -> e.get(dataRoot, dataRoot)).toArray(Dynamic[]::new)));
|
2022-06-03 19:54:31 +02:00
|
|
|
}
|
|
|
|
}
|