|
HikoGUI
A low latency retained GUI
|
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::ostream & | operator<< (std::ostream &lhs, skeleton_node const &rhs) |
|
inlinevirtualnoexcept |
Append a template-piece to the current template.
Reimplemented in v1::skeleton_block_node, v1::skeleton_do_node, v1::skeleton_for_node, v1::skeleton_function_node, v1::skeleton_if_node, v1::skeleton_top_node, and v1::skeleton_while_node.
|
inlinevirtual |
Evaluate the template.
Text in the template is added to the context.output_text.
| context | Data used by expressions inside the template statements. .output_text will contain textual data from the template. |
Reimplemented in v1::skeleton_block_node, v1::skeleton_break_node, v1::skeleton_continue_node, v1::skeleton_do_node, v1::skeleton_expression_node, v1::skeleton_for_node, v1::skeleton_function_node, v1::skeleton_if_node, v1::skeleton_placeholder_node, v1::skeleton_return_node, v1::skeleton_string_node, v1::skeleton_top_node, and v1::skeleton_while_node.
Remove any trailing spaces or tabs after a new-line.
Reimplemented in v1::skeleton_string_node.
Should any spaces on the left side of a statement be removed?
Reimplemented in v1::skeleton_placeholder_node, and v1::skeleton_string_node.