HikoGUI
A low latency retained GUI
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | Data Fields | Friends
tt::skeleton_node Struct Reference
Inheritance diagram for tt::skeleton_node:
tt::skeleton_block_node tt::skeleton_break_node tt::skeleton_continue_node tt::skeleton_do_node tt::skeleton_expression_node tt::skeleton_for_node tt::skeleton_function_node tt::skeleton_if_node tt::skeleton_placeholder_node tt::skeleton_return_node tt::skeleton_string_node tt::skeleton_top_node tt::skeleton_while_node

Public Types

using statement_vector = typename std::vector<std::unique_ptr<skeleton_node>>
 

Public Member Functions

 skeleton_node (parse_location location)
 
virtual bool append (std::unique_ptr< skeleton_node > x) noexcept
 Append a template-piece to the current template.
 
virtual bool should_left_align () const noexcept
 Should any spaces on the left side of a statement be removed?
 
virtual void left_align () noexcept
 Remove any trailing spaces or tabs after a new-line.
 
virtual bool found_elif (parse_location _location, std::unique_ptr< formula_node > expression) noexcept
 
virtual bool found_else (parse_location _location) noexcept
 
virtual bool found_while (parse_location _location, std::unique_ptr< formula_node > expression) noexcept
 
virtual void post_process (formula_post_process_context &context)
 
virtual datum evaluate (formula_evaluation_context &context)
 Evaluate the template.
 
std::string evaluate_output (formula_evaluation_context &context)
 
std::string evaluate_output ()
 
virtual std::string string () const noexcept
 

Static Public Member Functions

static void append_child (statement_vector &children, std::unique_ptr< skeleton_node > new_child)
 
static datum evaluate_formula_without_output (formula_evaluation_context &context, formula_node const &expression, parse_location const &location)
 
static datum evaluate_expression (formula_evaluation_context &context, formula_node const &expression, parse_location const &location)
 
static void post_process_expression (formula_post_process_context &context, formula_node &expression, parse_location const &location)
 
static datum evaluate_children (formula_evaluation_context &context, statement_vector const &children)
 

Data Fields

parse_location location
 

Friends

std::string to_string (skeleton_node const &lhs) noexcept
 
std::ostreamoperator<< (std::ostream &lhs, skeleton_node const &rhs)
 

Member Function Documentation

◆ append()

virtual bool tt::skeleton_node::append ( std::unique_ptr< skeleton_node > x)
inlinevirtualnoexcept

◆ evaluate()

virtual datum tt::skeleton_node::evaluate ( formula_evaluation_context & context)
inlinevirtual

Evaluate the template.

Text in the template is added to the context.output_text.

Parameters
contextData used by expressions inside the template statements. .output_text will contain textual data from the template.
Returns
datum::undefined when the skeleton_node generated textual data into context.output_text. datum::break when a #break statement was encountered. datum::continue when a #continue statement was encountered. Otherwise data returned from a #return statement.

Reimplemented in tt::skeleton_block_node, tt::skeleton_break_node, tt::skeleton_continue_node, tt::skeleton_do_node, tt::skeleton_expression_node, tt::skeleton_for_node, tt::skeleton_function_node, tt::skeleton_if_node, tt::skeleton_placeholder_node, tt::skeleton_return_node, tt::skeleton_string_node, tt::skeleton_top_node, and tt::skeleton_while_node.

◆ left_align()

virtual void tt::skeleton_node::left_align ( )
inlinevirtualnoexcept

Remove any trailing spaces or tabs after a new-line.

Reimplemented in tt::skeleton_string_node.

◆ should_left_align()

virtual bool tt::skeleton_node::should_left_align ( ) const
inlinevirtualnoexcept

Should any spaces on the left side of a statement be removed?

Reimplemented in tt::skeleton_placeholder_node, and tt::skeleton_string_node.


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