evaluateEval method
Implementation
EvaluateExprOutput evaluateEval(EvaluateExprInput input) {
final path = input.path;
var st = input.defs;
final where = input.expr.obj["where"];
if (where != null) {
final path = pathAppendKey(input.path, "where");
for (final (pos, w) in where.arr.indexed) {
final def = w.obj["def"]!;
final value = w.obj["value"]!;
final funDef = FunDef(
def: def.str, value: value, path: pathAppendIndex(path, pos));
final with_ = w.obj["with"];
if (with_ != null) {
for (final w in with_.arr) {
funDef.with_3.add(w.str);
}
}
st = funDefListRegister(st, funDef);
}
}
return evaluateExpr(EvaluateExprInput(
path: pathAppendKey(path, "eval"),
defs: st,
expr: input.expr.obj["eval"]));
}