refactor(AST): add aliases for AST node pointers

Refs: #8
This commit is contained in:
2026-06-03 16:20:08 +02:00
parent b68a559980
commit 3006b58212
+65 -77
View File
@@ -49,45 +49,45 @@ struct error {
class node; class node;
/**
* @brief Alias for a shared pointer to node.
*
* @tparam T AST node type.
*/
template <typename T = node>
using node_p = std::shared_ptr<T>;
/** /**
* @brief Alias for node result. * @brief Alias for node result.
* *
* @tparam T AST node type. * @tparam T AST node type.
*/ */
template <typename T> template <typename T = node>
using node_r = furlang::result<std::shared_ptr<T>, error>; using node_r = furlang::result<node_p<T>, error>;
class expression_node; class expression_node;
/** using expression_node_p = node_p<expression_node>; /**< Alias for a shared pointer to expression_node. */
* @brief Alias for handle to expression_node.
* @see expression_node using expression_node_r = node_r<expression_node>; /**< Alias for expression_node result */
*/
using expression_node_r = node_r<expression_node>;
class declaration_node; class declaration_node;
/** using declaration_node_p = node_p<declaration_node>; /**< Alias for a shared pointer to declaration_node. */
* @brief Alias for handle to declaration_node.
* @see declaration_node using declaration_node_r = node_r<declaration_node>; /**< Alias for declaration_node result */
*/
using declaration_node_r = node_r<declaration_node>;
class statement_node; class statement_node;
/** using statement_node_p = node_p<statement_node>; /**< Alias for a shared pointer to statement_node. */
* @brief Alias for handle to statement_node.
* @see statement_node using statement_node_r = node_r<statement_node>; /**< Alias for statement_node result */
*/
using statement_node_r = node_r<statement_node>;
class program_node; class program_node;
/** using program_node_p = node_p<program_node>; /**< Alias for a shared pointer to program_node. */
* @brief Alias for handle to program_node.
* @see program_node using program_node_r = node_r<program_node>; /**< Alias for program_node result */
*/
using program_node_r = node_r<program_node>;
/** /**
* @brief Literal node type. * @brief Literal node type.
@@ -105,54 +105,47 @@ class literal_node;
*/ */
using string_literal_node = literal_node<std::string, literal_node_t::String>; using string_literal_node = literal_node<std::string, literal_node_t::String>;
/** using string_literal_node_p = node_p<string_literal_node>; /**< Alias for a shared pointer to string_literal_node */
* @brief Alias for handle to string_literal_node.
* @see string_literal_node using string_literal_node_r = node_r<string_literal_node>; /**< Alias for string_literal_node result */
*/
using string_literal_node_r = node_r<string_literal_node>;
/** /**
* @brief Integer literal AST node. * @brief Integer literal AST node.
*/ */
using integer_literal_node = literal_node<std::uint64_t, literal_node_t::Integer>; using integer_literal_node = literal_node<std::uint64_t, literal_node_t::Integer>;
/** using integer_literal_node_p = node_p<integer_literal_node>; /**< Alias for a shared pointer to integer_literal_node */
* @brief Alias for handle to integer_literal_node.
* @see integer_literal_node using integer_literal_node_r = node_r<integer_literal_node>; /**< Alias for integer_literal_node result */
*/
using integer_literal_node_r = node_r<integer_literal_node>;
class var_read_expression_node; class var_read_expression_node;
/** using var_read_expression_node_p =
* @brief Alias for handle to var_read_expression_node. node_p<var_read_expression_node>; /**< Alias for a shared pointer to var_read_expression_node. */
* @see var_read_expression_node
*/ using var_read_expression_node_r = node_r<var_read_expression_node>; /**< Alias for var_read_expression_node result */
using var_read_expression_node_r = node_r<var_read_expression_node>;
class unaryop_expression_node; class unaryop_expression_node;
/** using unaryop_expression_node_p =
* @brief Alias for handle to unaryop_expression_node. node_p<unaryop_expression_node>; /**< Alias for a shared pointer to unaryop_expression_node. */
* @see unaryop_expression_node
*/ using unaryop_expression_node_r = node_r<unaryop_expression_node>; /**< Alias for unaryop_expression_node result */
using unaryop_expression_node_r = node_r<unaryop_expression_node>;
class binop_expression_node; class binop_expression_node;
/** using binop_expression_node_p =
* @brief Alias for handle to binop_expression_node. node_p<binop_expression_node>; /**< Alias for a shared pointer to binop_expression_node. */
* @see binop_expression_node
*/ using binop_expression_node_r = node_r<binop_expression_node>; /**< Alias for binop_expression_node result */
using binop_expression_node_r = node_r<binop_expression_node>;
class var_assign_expression_node; class var_assign_expression_node;
/** using var_assign_expression_node_p =
* @brief Alias for handle to var_assign_expression_node. node_p<var_assign_expression_node>; /**< Alias for a shared pointer to var_assign_expression_node. */
* @see var_assign_expression_node
*/ using var_assign_expression_node_r =
using var_assign_expression_node_r = node_r<var_assign_expression_node>; node_r<var_assign_expression_node>; /**< Alias for var_assign_expression_node result */
/** /**
* @brief List of statements. * @brief List of statements.
@@ -209,43 +202,38 @@ using body_r = furlang::result<body, error>;
class function_declaration_node; class function_declaration_node;
/** using function_declaration_node_p =
* @brief Alias for handle to function_declaration_node. node_p<function_declaration_node>; /**< Alias for a shared pointer to function_declaration_node. */
* @see function_declaration_node
*/ using function_declaration_node_r =
using function_declaration_node_r = node_r<function_declaration_node>; node_r<function_declaration_node>; /**< Alias for function_declaration_node result */
class function_definition_node; class function_definition_node;
/** using function_definition_node_p =
* @brief Alias for handle to function_definition_node. node_p<function_definition_node>; /**< Alias for a shared pointer to function_definition_node. */
* @see function_definition_node
*/ using function_definition_node_r = node_r<function_definition_node>; /**< Alias for function_definition_node result */
using function_definition_node_r = node_r<function_definition_node>;
class return_statement_node; class return_statement_node;
/** using return_statement_node_p =
* @brief Alias for handle to return_statement_node. node_p<return_statement_node>; /**< Alias for a shared pointer to return_statement_node. */
* @see return_statement_node
*/ using return_statement_node_r = node_r<return_statement_node>; /**< Alias for return_statement_node result */
using return_statement_node_r = node_r<return_statement_node>;
class if_statement_node; class if_statement_node;
/** using if_statement_node_p = node_p<if_statement_node>; /**< Alias for a shared pointer to if_statement_node. */
* @brief Alias for handle to if_statement_node.
* @see if_statement_node using if_statement_node_r = node_r<if_statement_node>; /**< Alias for if_statement_node result */
*/
using if_statement_node_r = node_r<if_statement_node>;
class compound_statement_node; class compound_statement_node;
/** using compound_statement_node_p =
* @brief Alias for handle to compound_statement_node. node_p<compound_statement_node>; /**< Alias for a shared pointer to compound_statement_node. */
* @see compound_statement_node
*/ using compound_statement_node_r = node_r<compound_statement_node>; /**< Alias for compound_statement_node result */
using compound_statement_node_r = node_r<compound_statement_node>;
} // namespace ast } // namespace ast
} // namespace furc } // namespace furc