2023-07-22 19:49:52 +03:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include "statement_nodes.hpp"
|
|
|
|
|
#include "tree_sitter_wrapper.hpp"
|
|
|
|
|
|
2023-07-26 14:21:33 +03:00
|
|
|
#include <vector>
|
|
|
|
|
|
2023-07-22 19:49:52 +03:00
|
|
|
namespace builders {
|
|
|
|
|
|
2023-07-26 14:21:33 +03:00
|
|
|
std::vector<nodes::Statement>
|
|
|
|
|
build_source_file(parser::ParseTree::Node parser_node,
|
|
|
|
|
nodes::ExpressionStorage &expression_storage,
|
|
|
|
|
nodes::TypeStorage &type_storage);
|
2023-07-22 19:49:52 +03:00
|
|
|
|
2023-07-26 14:21:33 +03:00
|
|
|
nodes::Statement build_statement(parser::ParseTree::Node parser_node,
|
|
|
|
|
nodes::ExpressionStorage &expression_storage,
|
|
|
|
|
nodes::TypeStorage &type_storage);
|
2023-07-22 19:49:52 +03:00
|
|
|
|
2023-07-23 19:40:27 +03:00
|
|
|
nodes::Import build_import(parser::ParseTree::Node parser_node);
|
2023-07-22 19:49:52 +03:00
|
|
|
|
2023-07-23 19:40:27 +03:00
|
|
|
nodes::Constraint build_constraint(parser::ParseTree::Node parser_node,
|
2023-07-22 19:49:52 +03:00
|
|
|
nodes::ExpressionStorage &expression_storage,
|
|
|
|
|
nodes::TypeStorage &type_storage);
|
|
|
|
|
|
|
|
|
|
nodes::TypeDefinition
|
2023-07-23 19:40:27 +03:00
|
|
|
build_type_definition(parser::ParseTree::Node parser_node,
|
2023-07-22 19:49:52 +03:00
|
|
|
nodes::ExpressionStorage &expression_storage,
|
|
|
|
|
nodes::TypeStorage &type_storage);
|
|
|
|
|
|
|
|
|
|
nodes::FunctionDefinition
|
2023-07-23 19:40:27 +03:00
|
|
|
build_function_definition(parser::ParseTree::Node parser_node,
|
2023-07-22 19:49:52 +03:00
|
|
|
nodes::ExpressionStorage &expression_storage,
|
|
|
|
|
nodes::TypeStorage &type_storage);
|
|
|
|
|
|
|
|
|
|
nodes::TypeclassDefinition
|
2023-07-23 19:40:27 +03:00
|
|
|
build_typeclass_definition(parser::ParseTree::Node parser_node,
|
2023-07-22 19:49:52 +03:00
|
|
|
nodes::ExpressionStorage &expression_storage,
|
|
|
|
|
nodes::TypeStorage &type_storage);
|
|
|
|
|
|
|
|
|
|
} // namespace builders
|