forked from KPGPMC/furlang
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user