HikoGUI
A low latency retained GUI
Loading...
Searching...
No Matches
src
hikogui
formula
formula_assign_node.hpp
1
// Copyright Take Vos 2020.
2
// Distributed under the Boost Software License, Version 1.0.
3
// (See accompanying file LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt)
4
5
#pragma once
6
7
#include "formula_binary_operator_node.hpp"
8
9
namespace
hi::inline v1 {
10
11
struct
formula_assign_node
final :
formula_binary_operator_node
{
12
formula_assign_node
(
parse_location
location,
std::unique_ptr<formula_node>
lhs,
std::unique_ptr<formula_node>
rhs) :
13
formula_binary_operator_node
(
std::move
(location),
std::move
(lhs),
std::move
(rhs))
14
{
15
}
16
17
datum
evaluate
(
formula_evaluation_context
&context)
const override
18
{
19
auto
rhs_ = rhs->evaluate(context);
20
return
lhs->assign(context, rhs_);
21
}
22
23
std::string
string() const noexcept
override
24
{
25
return
std::format(
"({} = {})"
, *lhs, *rhs);
26
}
27
};
28
29
}
// namespace hi::inline v1
v1::datum
A dynamic data type.
Definition
datum.hpp:209
v1::formula_assign_node
Definition
formula_assign_node.hpp:11
v1::formula_assign_node::evaluate
datum evaluate(formula_evaluation_context &context) const override
Evaluate an rvalue.
Definition
formula_assign_node.hpp:17
v1::formula_binary_operator_node
Definition
formula_binary_operator_node.hpp:11
v1::formula_evaluation_context
Definition
formula_evaluation_context.hpp:16
v1::parse_location
Definition
parse_location.hpp:17
std::string
std::move
T move(T... args)
std::unique_ptr
Generated on Mon Apr 22 2024 12:53:25 for HikoGUI by
1.10.0