7#include "skeleton_node.hpp"
9namespace hi::inline
v1 {
12 statement_vector children;
43 if (ssize(children) > 0) {
44 children.back()->left_align();
47 post_process_expression(context, *expression, location);
49 for (
hilet &child : children) {
50 child->post_process(context);
58 ssize_t loop_count = 0;
60 context.loop_push(loop_count++);
61 auto tmp = evaluate_children(context, children);
66 }
else if (tmp.is_continue()) {
68 }
else if (!tmp.is_undefined()) {
73 }
while (evaluate_formula_without_output(context, *expression, formula_location));
84 s += to_string(*expression);
#define hi_assert(expression,...)
Assert if expression is true.
Definition assert.hpp:199
#define hilet
Invariant should be the default for variables.
Definition utility.hpp:23
DOXYGEN BUG.
Definition algorithm.hpp:13
A dynamic data type.
Definition datum.hpp:223
Definition formula_evaluation_context.hpp:15
void set_output_size(ssize_t new_size) noexcept
Set the size of the output.
Definition formula_evaluation_context.hpp:67
ssize_t output_size() const noexcept
Get the size of the output.
Definition formula_evaluation_context.hpp:59
Definition formula_post_process_context.hpp:19
Definition parse_location.hpp:18
Definition skeleton_do_node.hpp:11
bool append(std::unique_ptr< skeleton_node > x) noexcept override
Append a template-piece to the current template.
Definition skeleton_do_node.hpp:31
datum evaluate(formula_evaluation_context &context) override
Evaluate the template.
Definition skeleton_do_node.hpp:54
Definition skeleton_node.hpp:16