java-commons/muscript/src/main/java/io/gitlab/jfronny/muscript/compiler/expr/Call.java

22 lines
656 B
Java
Raw Normal View History

package io.gitlab.jfronny.muscript.compiler.expr;
import io.gitlab.jfronny.muscript.compiler.*;
import io.gitlab.jfronny.muscript.dynamic.*;
import java.util.*;
public class Call extends Expr.DynamicExpr {
private final DynamicExpr left;
private final List<DynamicExpr> args;
public Call(DynamicExpr left, List<DynamicExpr> args) {
this.left = left;
this.args = args;
}
@Override
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)));
}
}