21 children_groups.emplace_back();
25 if (children_groups.size() != expressions.
size()) {
31 children_groups.emplace_back();
36 if (children_groups.size() != expressions.
size()) {
40 children_groups.emplace_back();
47 append_child(children_groups.back(),
std::move(x));
52 tt_assert(std::ssize(expressions) == std::ssize(formula_locations));
53 for (
ssize_t i = 0; i != std::ssize(expressions); ++i) {
54 post_process_expression(context, *expressions[i], formula_locations[i]);
57 for (ttlet &children: children_groups) {
58 if (std::ssize(children) > 0) {
59 children.back()->left_align();
62 for (ttlet &child: children) {
63 child->post_process(context);
69 tt_axiom(std::ssize(expressions) == std::ssize(formula_locations));
70 for (
ssize_t i = 0; i != std::ssize(expressions); ++i) {
71 if (evaluate_formula_without_output(context, *expressions[i], formula_locations[i])) {
72 return evaluate_children(context, children_groups[i]);
75 if (std::ssize(children_groups) > std::ssize(expressions)) {
76 return evaluate_children(context, children_groups[std::ssize(expressions)]);
82 tt_assert(expressions.
size() > 0);
84 s += to_string(*expressions[0]);
87 for (
size_t i = 1; i != expressions.
size(); ++i) {
89 s += to_string(*expressions[i]);
93 if (children_groups.size() != expressions.
size()) {
bool append(std::unique_ptr< skeleton_node > x) noexcept override
Append a template-piece to the current template.
Definition skeleton_if_node.hpp:46