upd: tools almost done

This commit is contained in:
2023-11-09 10:59:39 +08:00
parent b737eb8e7d
commit 6d6b1b9a02
5 changed files with 89 additions and 17 deletions

View File

@ -78,4 +78,19 @@ bool Any2Bool(const std::any &value) {
return (*ptr) != "";
} else
throw FatalError("Any2Bool: unknown type");
}
std::any DeQuate(std::any val, VariableContainer &Variables) {
if (auto ptr = std::any_cast<std::vector<std::any>>(&val)) {
for (int i = 0; i < ptr->size(); i++)
(*ptr)[i] = DeQuate((*ptr)[i], Variables);
return *ptr;
} else if (auto ptr = std::any_cast<RawVarible>(&val)) {
return Variables.ReadVariable(ptr->name);
} else if (std::any_cast<double>(&val) || std::any_cast<ZYM::int2048>(&val) ||
std::any_cast<bool>(&val) || std::any_cast<std::string>(&val) ||
std::any_cast<NoneType>(&val))
return val;
else
throw FatalError("DeQuate: unknown type");
}