|
HikoGUI
A low latency retained GUI
|
Public Types | |
| using | formula_vector = std::vector<std::unique_ptr<formula_node>> |
Public Member Functions | |
| formula_node (parse_location location) | |
| virtual void | post_process (formula_post_process_context &context) |
| Resolve function and method pointers. | |
| virtual void | resolve_function_pointer (formula_post_process_context &context) |
| Resolve function and method pointers. | |
| virtual datum | evaluate (formula_evaluation_context &context) const =0 |
| Evaluate an rvalue. | |
| datum | evaluate_without_output (formula_evaluation_context &context) const |
| virtual datum & | evaluate_lvalue (formula_evaluation_context &context) const |
| Evaluate an existing lvalue. | |
| virtual bool | has_evaluate_xvalue () const |
| virtual datum const & | evaluate_xvalue (formula_evaluation_context const &context) const |
| Evaluate an existing xvalue. | |
| virtual datum & | assign (formula_evaluation_context &context, datum const &rhs) const |
| Assign to a non-existing or existing lvalue. | |
| datum & | assign_without_output (formula_evaluation_context &context, datum const &rhs) const |
| virtual datum | call (formula_evaluation_context &context, datum::vector_type const &arguments) const |
| Call a function with a datum::vector as arguments. | |
| virtual std::string | get_name () const |
| Get the name of a formula_name_node. | |
| virtual std::vector< std::string > | get_name_and_argument_names () const |
| Get name and argument names from a function declaration. | |
| virtual std::string | string () const noexcept=0 |
Data Fields | |
| parse_location | location |
Friends | |
| std::string | to_string (formula_node const &rhs) noexcept |
| std::ostream & | operator<< (std::ostream &lhs, formula_node const &rhs) noexcept |
|
inlinevirtual |
Assign to a non-existing or existing lvalue.
Reimplemented in v1::formula_name_node, and v1::formula_vector_literal_node.
|
inlinevirtual |
Call a function with a datum::vector as arguments.
Reimplemented in v1::formula_member_node, and v1::formula_name_node.
|
pure virtual |
Evaluate an rvalue.
Implemented in v1::formula_add_node, v1::formula_arguments, v1::formula_assign_node, v1::formula_bit_and_node, v1::formula_bit_or_node, v1::formula_bit_xor_node, v1::formula_call_node, v1::formula_decrement_node, v1::formula_div_node, v1::formula_eq_node, v1::formula_filter_node, v1::formula_ge_node, v1::formula_gt_node, v1::formula_increment_node, v1::formula_index_node, v1::formula_inplace_add_node, v1::formula_inplace_and_node, v1::formula_inplace_div_node, v1::formula_inplace_mod_node, v1::formula_inplace_mul_node, v1::formula_inplace_or_node, v1::formula_inplace_shl_node, v1::formula_inplace_shr_node, v1::formula_inplace_sub_node, v1::formula_inplace_xor_node, v1::formula_invert_node, v1::formula_le_node, v1::formula_literal_node, v1::formula_logical_and_node, v1::formula_logical_not_node, v1::formula_logical_or_node, v1::formula_lt_node, v1::formula_map_literal_node, v1::formula_member_node, v1::formula_minus_node, v1::formula_mod_node, v1::formula_mul_node, v1::formula_name_node, v1::formula_ne_node, v1::formula_plus_node, v1::formula_pow_node, v1::formula_shl_node, v1::formula_shr_node, v1::formula_sub_node, v1::formula_ternary_operator_node, and v1::formula_vector_literal_node.
|
inlinevirtual |
Evaluate an existing lvalue.
Reimplemented in v1::formula_index_node, v1::formula_member_node, and v1::formula_name_node.
|
inlinevirtual |
Evaluate an existing xvalue.
Reimplemented in v1::formula_name_node.
|
inlinevirtual |
Get the name of a formula_name_node.
Reimplemented in v1::formula_name_node.
|
inlinevirtual |
Get name and argument names from a function declaration.
This is only implemented on the formula_call_node.
Reimplemented in v1::formula_call_node.
|
inlinevirtual |
Resolve function and method pointers.
At all call-formulas resolve the function pointers from the parse_context.
Reimplemented in v1::formula_binary_operator_node, v1::formula_call_node, v1::formula_filter_node, v1::formula_map_literal_node, v1::formula_ternary_operator_node, v1::formula_unary_operator_node, and v1::formula_vector_literal_node.
|
inlinevirtual |
Resolve function and method pointers.
This is called on a name-formula or member-formula to set the function pointer.
Reimplemented in v1::formula_member_node, and v1::formula_name_node.