7#include "formula_binary_operator_node.hpp"
8#include "formula_post_process_context.hpp"
9#include "formula_name_node.hpp"
10#include "../macros.hpp"
12hi_export_module(hikogui.formula.formula_filter_node);
14namespace hi {
inline namespace v1 {
17 mutable formula_post_process_context::filter_type filter;
24 if (rhs_name ==
nullptr) {
25 throw parse_error(std::format(
"{}:{}: Expecting a name token on the right hand side of a filter operator. got {}.", line_nr, column_nr, *rhs));
33 filter =
context.get_filter(rhs_name->name);
35 throw parse_error(std::format(
"{}:{}: Could not find filter .{}().", line_nr, column_nr, rhs_name->name));
45 throw operation_error(std::format(
"{}:{}: Can not evaluate filter.\n{}", line_nr, column_nr, e.
what()));
51 return std::format(
"({} ! {})", *lhs, *rhs);
DOXYGEN BUG.
Definition algorithm.hpp:16
geometry/margins.hpp
Definition lookahead_iterator.hpp:5
constexpr Out narrow_cast(In const &rhs) noexcept
Cast numeric values without loss of precision.
Definition cast.hpp:377
A dynamic data type.
Definition datum.hpp:212
Definition formula_binary_operator_node.hpp:14
void post_process(formula_post_process_context &context) override
Resolve function and method pointers.
Definition formula_binary_operator_node.hpp:23
Definition formula_evaluation_context.hpp:18
Definition formula_filter_node.hpp:16
datum evaluate(formula_evaluation_context &context) const override
Evaluate an rvalue.
Definition formula_filter_node.hpp:39
void post_process(formula_post_process_context &context) override
Resolve function and method pointers.
Definition formula_filter_node.hpp:29
Definition formula_name_node.hpp:14
Definition formula_post_process_context.hpp:237
Exception thrown during parsing on an error.
Definition exception_intf.hpp:47
Exception thrown during execution of a dynamic operation.
Definition exception_intf.hpp:160