7#include "skeleton_node.hpp"
8#include "../macros.hpp"
13 statement_vector children;
42 void post_process(formula_post_process_context &context)
override
44 if (ssize(children) > 0) {
45 children.back()->left_align();
48 post_process_expression(context, *expression, location);
50 for (hilet &child : children) {
51 child->post_process(context);
55 datum
evaluate(formula_evaluation_context &context)
override
57 hilet output_size = context.output_size();
59 ssize_t loop_count = 0;
61 context.loop_push(loop_count++);
62 auto tmp = evaluate_children(context, children);
67 }
else if (tmp.is_continue()) {
69 }
else if (!tmp.is_undefined()) {
70 context.set_output_size(output_size);
74 }
while (evaluate_formula_without_output(context, *expression, formula_location));
80 hi_assert(expression);
85 s += to_string(*expression);
DOXYGEN BUG.
Definition algorithm.hpp:16
constexpr Out narrow_cast(In const &rhs) noexcept
Cast numeric values without loss of precision.
Definition cast.hpp:377
Definition parse_location.hpp:18
Definition skeleton_do_node.hpp:12
bool append(std::unique_ptr< skeleton_node > x) noexcept override
Append a template-piece to the current template.
Definition skeleton_do_node.hpp:32
datum evaluate(formula_evaluation_context &context) override
Evaluate the template.
Definition skeleton_do_node.hpp:55
Definition skeleton_node.hpp:16