statement builders finished

This commit is contained in:
ProgramSnail 2023-07-23 19:40:27 +03:00
parent 64a91299ff
commit 4470454838
19 changed files with 682 additions and 255 deletions

View file

@ -8,85 +8,86 @@ namespace builders {
// --- flow control
nodes::ExpressionProxy
build_expression(parser::ParseTree::Node parse_node,
build_expression(parser::ParseTree::Node parser_node,
nodes::ExpressionStorage &expression_storage,
nodes::TypeStorage &type_storage);
nodes::Match build_match(parser::ParseTree::Node parse_node,
nodes::Match build_match(parser::ParseTree::Node parser_node,
nodes::ExpressionStorage &expression_storage,
nodes::TypeStorage &type_storage);
nodes::Condition build_condition(parser::ParseTree::Node parse_node,
nodes::Condition build_condition(parser::ParseTree::Node parser_node,
nodes::ExpressionStorage &expression_storage,
nodes::TypeStorage &type_storage);
nodes::Loop build_loop(parser::ParseTree::Node parse_node,
nodes::Loop build_loop(parser::ParseTree::Node parser_node,
nodes::ExpressionStorage &expression_storage,
nodes::TypeStorage &type_storage);
// --- operators
nodes::NameExpression
build_comma_expression(parser::ParseTree::Node parse_node,
build_comma_expression(parser::ParseTree::Node parser_node,
nodes::ExpressionStorage &expression_storage,
nodes::TypeStorage &type_storage);
nodes::NameExpression
build_operator_expression(parser::ParseTree::Node parse_node,
build_operator_expression(parser::ParseTree::Node parser_node,
nodes::ExpressionStorage &expression_storage,
nodes::TypeStorage &type_storage);
// --- continers
nodes::Container build_block(parser::ParseTree::Node parse_node,
nodes::Container build_block(parser::ParseTree::Node parser_node,
nodes::ExpressionStorage &expression_storage,
nodes::TypeStorage &type_storage);
nodes::Container build_array(parser::ParseTree::Node parse_node,
nodes::Container build_array(parser::ParseTree::Node parser_node,
nodes::ExpressionStorage &expression_storage,
nodes::TypeStorage &type_storage);
// --- modifiers
nodes::Return build_return(parser::ParseTree::Node parse_node,
nodes::Return build_return(parser::ParseTree::Node parser_node,
nodes::ExpressionStorage &expression_storage,
nodes::TypeStorage &type_storage);
nodes::NameDefinition build_name_definition(parser::ParseTree::Node parse_node);
nodes::NameDefinition
build_name_definition(parser::ParseTree::Node parser_node);
nodes::Access build_array_access(parser::ParseTree::Node parse_node,
nodes::Access build_array_access(parser::ParseTree::Node parser_node,
nodes::ExpressionStorage &expression_storage,
nodes::TypeStorage &type_storage);
nodes::Access build_tuple_access(parser::ParseTree::Node parse_node,
nodes::Access build_tuple_access(parser::ParseTree::Node parser_node,
nodes::ExpressionStorage &expression_storage,
nodes::TypeStorage &type_storage);
nodes::LoopControl build_loop_control(parser::ParseTree::Node parse_node);
nodes::LoopControl build_loop_control(parser::ParseTree::Node parser_node);
nodes::ModifierExpression
build_reference_expression(parser::ParseTree::Node parse_node,
build_reference_expression(parser::ParseTree::Node parser_node,
nodes::ExpressionStorage &expression_storage,
nodes::TypeStorage &type_storage);
nodes::ModifierExpression
build_suffix_expression(parser::ParseTree::Node parse_node,
build_suffix_expression(parser::ParseTree::Node parser_node,
nodes::ExpressionStorage &expression_storage,
nodes::TypeStorage &type_storage);
// --- other
nodes::NameExpression
build_name_expression(parser::ParseTree::Node parse_node,
build_name_expression(parser::ParseTree::Node parser_node,
nodes::ExpressionStorage &expression_storage,
nodes::TypeStorage &type_storage);
nodes::Constructor
build_constructor(parser::ParseTree::Node parse_node,
build_constructor(parser::ParseTree::Node parser_node,
nodes::ExpressionStorage &expression_storage,
nodes::TypeStorage &type_storage);
nodes::Lambda build_lambda(parser::ParseTree::Node parse_node,
nodes::Lambda build_lambda(parser::ParseTree::Node parser_node,
nodes::ExpressionStorage &expression_storage,
nodes::TypeStorage &type_storage);