7#include "formula_node.hpp"
8#include "../macros.hpp"
10hi_export_module(hikogui.formula.formula_ternary_operator_node);
12namespace hi {
inline namespace v1 {
20 size_t line_nr,
size_t column_nr,
23 formula_node(line_nr, column_nr), lhs(
std::move(lhs))
26 hi_assert(pair_.args.
size() == 2);
35 lhs->post_process(context);
36 rhs_true->post_process(context);
37 rhs_false->post_process(context);
42 hilet lhs_ = lhs->evaluate(context);
44 return rhs_true->evaluate(context);
46 return rhs_false->evaluate(context);
52 return std::format(
"({} ? {} : {})", *lhs, *rhs_true, *rhs_false);
geometry/margins.hpp
Definition lookahead_iterator.hpp:5
The HikoGUI API version 1.
Definition lookahead_iterator.hpp:6
A dynamic data type.
Definition datum.hpp:212
A temporary node used during parsing.
Definition formula_arguments.hpp:16
Definition formula_evaluation_context.hpp:18
Definition formula_post_process_context.hpp:237
Definition formula_ternary_operator_node.hpp:14
void post_process(formula_post_process_context &context) override
Resolve function and method pointers.
Definition formula_ternary_operator_node.hpp:33
datum evaluate(formula_evaluation_context &context) const override
Evaluate an rvalue.
Definition formula_ternary_operator_node.hpp:40