HikoGUI
A low latency retained GUI
Loading...
Searching...
No Matches
formula_arguments.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_node.hpp"
8#include "../macros.hpp"
9
10hi_export_module(hikogui.formula.formula_arguments);
11
12namespace hi { inline namespace v1 {
13
16hi_export struct formula_arguments final : formula_node {
17 formula_vector args;
18
19 formula_arguments(size_t line_nr, size_t column_nr, formula_vector args) : formula_node(line_nr, column_nr), args(std::move(args)) {}
20
21 formula_arguments(size_t line_nr, size_t column_nr, std::unique_ptr<formula_node> arg1, std::unique_ptr<formula_node> arg2) :
22 formula_node(line_nr, column_nr)
23 {
24 args.push_back(std::move(arg1));
25 args.push_back(std::move(arg2));
26 }
27
28 datum evaluate(formula_evaluation_context &context) const override
29 {
30 return {};
31 };
32
33 std::string string() const noexcept override
34 {
35 std::string s = "<args ";
36 int i = 0;
37 for (hilet &arg : args) {
38 if (i++ > 0) {
39 s += ", ";
40 }
41 s += arg->string();
42 }
43 return s + ">";
44 }
45};
46
47}} // namespace hi::inline v1
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
datum evaluate(formula_evaluation_context &context) const override
Evaluate an rvalue.
Definition formula_arguments.hpp:28
Definition formula_evaluation_context.hpp:18
T move(T... args)