7#include "skeleton_node.hpp"
8#include "../macros.hpp"
25 void post_process(formula_post_process_context &context)
override
28 expression->post_process(context);
31 throw operation_error(std::format(
"{}: Could not post process placeholder.\n{}", location, e.
what()));
37 return std::format(
"<placeholder {}>", *expression);
40 datum
evaluate(formula_evaluation_context &context)
override
42 hilet output_size = context.output_size();
44 hilet tmp = evaluate_expression(context, *expression, location);
46 throw operation_error(std::format(
"{}: Found #break not inside a loop statement.", location));
48 }
else if (tmp.is_continue()) {
49 throw operation_error(std::format(
"{}: Found #continue not inside a loop statement.", location));
51 }
else if (tmp.is_undefined()) {
56 context.set_output_size(output_size);
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_node.hpp:16
Definition skeleton_placeholder_node.hpp:12
datum evaluate(formula_evaluation_context &context) override
Evaluate the template.
Definition skeleton_placeholder_node.hpp:40
bool should_left_align() const noexcept override
Should any spaces on the left side of a statement be removed?
Definition skeleton_placeholder_node.hpp:20