HikoGUI
A low latency retained GUI
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Data Fields | Friends
hi::v1::formula_node Struct Referenceabstract
Inheritance diagram for hi::v1::formula_node:
hi::v1::formula_arguments hi::v1::formula_binary_operator_node hi::v1::formula_call_node hi::v1::formula_literal_node hi::v1::formula_map_literal_node hi::v1::formula_name_node hi::v1::formula_ternary_operator_node hi::v1::formula_unary_operator_node hi::v1::formula_vector_literal_node

Public Types

using formula_vector = std::vector<std::unique_ptr<formula_node>>
 

Public Member Functions

 formula_node (formula_node const &)=delete
 
 formula_node (formula_node &&)=delete
 
formula_nodeoperator= (formula_node const &)=delete
 
formula_nodeoperator= (formula_node &&)=delete
 
 formula_node (size_t line_nr, size_t column_nr)
 
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 datumevaluate_lvalue (formula_evaluation_context &context) const
 Evaluate an existing lvalue.
 
virtual bool has_evaluate_xvalue () const
 
virtual datum constevaluate_xvalue (formula_evaluation_context const &context) const
 Evaluate an existing xvalue.
 
virtual datumassign (formula_evaluation_context &context, datum const &rhs) const
 Assign to a non-existing or existing lvalue.
 
datumassign_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::stringget_name_and_argument_names () const
 Get name and argument names from a function declaration.
 
virtual std::string string () const noexcept=0
 

Data Fields

size_t line_nr
 
size_t column_nr
 

Friends

std::string to_string (formula_node const &rhs) noexcept
 

Member Function Documentation

◆ assign()

virtual datum & hi::v1::formula_node::assign ( formula_evaluation_context & context,
datum const & rhs ) const
inlinevirtual

Assign to a non-existing or existing lvalue.

Reimplemented in hi::v1::formula_name_node, and hi::v1::formula_vector_literal_node.

◆ call()

virtual datum hi::v1::formula_node::call ( formula_evaluation_context & context,
datum::vector_type const & arguments ) const
inlinevirtual

Call a function with a datum::vector as arguments.

Reimplemented in hi::v1::formula_member_node, and hi::v1::formula_name_node.

◆ evaluate()

virtual datum hi::v1::formula_node::evaluate ( formula_evaluation_context & context) const
pure virtual

◆ evaluate_lvalue()

virtual datum & hi::v1::formula_node::evaluate_lvalue ( formula_evaluation_context & context) const
inlinevirtual

Evaluate an existing lvalue.

Reimplemented in hi::v1::formula_index_node, hi::v1::formula_member_node, and hi::v1::formula_name_node.

◆ evaluate_xvalue()

virtual datum const & hi::v1::formula_node::evaluate_xvalue ( formula_evaluation_context const & context) const
inlinevirtual

Evaluate an existing xvalue.

Reimplemented in hi::v1::formula_name_node.

◆ get_name()

virtual std::string hi::v1::formula_node::get_name ( ) const
inlinevirtual

Get the name of a formula_name_node.

Reimplemented in hi::v1::formula_name_node.

◆ get_name_and_argument_names()

virtual std::vector< std::string > hi::v1::formula_node::get_name_and_argument_names ( ) const
inlinevirtual

Get name and argument names from a function declaration.

This is only implemented on the formula_call_node.

Reimplemented in hi::v1::formula_call_node.

◆ post_process()

virtual void hi::v1::formula_node::post_process ( formula_post_process_context & context)
inlinevirtual

◆ resolve_function_pointer()

virtual void hi::v1::formula_node::resolve_function_pointer ( formula_post_process_context & context)
inlinevirtual

Resolve function and method pointers.

This is called on a name-formula or member-formula to set the function pointer.

Reimplemented in hi::v1::formula_member_node, and hi::v1::formula_name_node.


The documentation for this struct was generated from the following file: