mirror of
https://codeberg.org/ProgramSnail/lang.git
synced 2025-12-07 15:38:49 +00:00
folder structure refactoring
This commit is contained in:
parent
ef88e6af86
commit
78c696b99a
30 changed files with 40 additions and 22 deletions
67
include/builders/basic_builders.hpp
Normal file
67
include/builders/basic_builders.hpp
Normal file
|
|
@ -0,0 +1,67 @@
|
|||
#pragma once
|
||||
|
||||
#include "basic_nodes.hpp"
|
||||
#include "tree_sitter_wrapper.hpp"
|
||||
|
||||
namespace builders {
|
||||
|
||||
namespace utils {
|
||||
|
||||
inline bool is_suffix_modifier(nodes::Modifier modifier) {
|
||||
return modifier == nodes::Modifier::OPTIONAL ||
|
||||
modifier == nodes::Modifier::RESULT;
|
||||
}
|
||||
|
||||
} // namespace utils
|
||||
|
||||
// returns Modifier::NONE for incorrecnt input
|
||||
nodes::Modifier build_modifier(parser::ParseTree::Node parser_node);
|
||||
|
||||
nodes::Node build_node(parser::ParseTree::Node parser_node);
|
||||
|
||||
// --- literals
|
||||
|
||||
nodes::Literal build_float_number_literal(parser::ParseTree::Node parser_node);
|
||||
|
||||
nodes::Literal build_number_literal(parser::ParseTree::Node parser_node);
|
||||
|
||||
nodes::Literal build_string_literal(parser::ParseTree::Node parser_node);
|
||||
|
||||
nodes::Literal build_char_literal(parser::ParseTree::Node parser_node);
|
||||
|
||||
nodes::Literal build_bool_literal(parser::ParseTree::Node parser_node);
|
||||
|
||||
nodes::Literal build_unit_literal(parser::ParseTree::Node parser_node);
|
||||
|
||||
nodes::Literal build_null_literal(parser::ParseTree::Node parser_node);
|
||||
|
||||
// --- identifiers
|
||||
|
||||
nodes::Identifier build_identifier(parser::ParseTree::Node parser_node);
|
||||
|
||||
nodes::Identifier build_simple_name(parser::ParseTree::Node parser_node);
|
||||
|
||||
nodes::Identifier build_simple_type(parser::ParseTree::Node parser_node);
|
||||
|
||||
nodes::Identifier build_typeclass(parser::ParseTree::Node parser_node);
|
||||
|
||||
nodes::Identifier build_argument_name(parser::ParseTree::Node parser_node);
|
||||
|
||||
nodes::Identifier build_argument_type(parser::ParseTree::Node parser_node);
|
||||
|
||||
// Annotations are used as strings
|
||||
std::string build_annotation(parser::ParseTree::Node parser_node);
|
||||
|
||||
nodes::Identifier build_operator(parser::ParseTree::Node parser_node);
|
||||
|
||||
nodes::Identifier build_placeholder(parser::ParseTree::Node parser_node);
|
||||
|
||||
// --- extra
|
||||
|
||||
nodes::Extra build_extra(parser::ParseTree::Node parser_node);
|
||||
|
||||
// --- empty lines
|
||||
|
||||
nodes::EmptyLines build_empty_lines(parser::ParseTree::Node parser_node);
|
||||
|
||||
} // namespace builders
|
||||
Loading…
Add table
Add a link
Reference in a new issue