mirror of
https://codeberg.org/ProgramSnail/lang.git
synced 2025-12-07 07:28:45 +00:00
basic node builders
This commit is contained in:
parent
1b28f41810
commit
696a9c3a1a
11 changed files with 442 additions and 37 deletions
45
include/basic_builders.hpp
Normal file
45
include/basic_builders.hpp
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
#pragma once
|
||||
|
||||
#include "basic_nodes.hpp"
|
||||
#include "tree_sitter_wrapper.hpp"
|
||||
|
||||
namespace builders {
|
||||
|
||||
nodes::Node buildNode(parser::ParseTree::Node parser_node);
|
||||
|
||||
// --- literals
|
||||
|
||||
nodes::Literal buildFloatNumberLiteral(parser::ParseTree::Node parser_node);
|
||||
|
||||
nodes::Literal buildNumberLiteral(parser::ParseTree::Node parser_node);
|
||||
|
||||
nodes::Literal buildStringLiteral(parser::ParseTree::Node parser_node);
|
||||
|
||||
nodes::Literal buildCharLiteral(parser::ParseTree::Node parser_node);
|
||||
|
||||
nodes::Literal buildBoolLiteral(parser::ParseTree::Node parser_node);
|
||||
|
||||
nodes::Literal buildUnitLiteral(parser::ParseTree::Node parser_node);
|
||||
|
||||
nodes::Literal buildNullLiteral(parser::ParseTree::Node parser_node);
|
||||
|
||||
// --- identifiers
|
||||
|
||||
nodes::Identifier buildSimpleName(parser::ParseTree::Node parser_node);
|
||||
|
||||
nodes::Identifier buildSimpleType(parser::ParseTree::Node parser_node);
|
||||
|
||||
nodes::Identifier buildTypeclass(parser::ParseTree::Node parser_node);
|
||||
|
||||
nodes::Identifier buildArgumentName(parser::ParseTree::Node parser_node);
|
||||
|
||||
nodes::Identifier buildArgumentType(parser::ParseTree::Node parser_node);
|
||||
|
||||
// Annotations are used as strings
|
||||
std::string buildAnnotation(parser::ParseTree::Node parser_node);
|
||||
|
||||
nodes::Identifier buildOperator(parser::ParseTree::Node parser_node);
|
||||
|
||||
nodes::Identifier buildPlaceholder(parser::ParseTree::Node parser_node);
|
||||
|
||||
} // namespace builders
|
||||
Loading…
Add table
Add a link
Reference in a new issue