basic node builders

This commit is contained in:
ProgramSnail 2023-07-20 14:38:44 +03:00
parent 1b28f41810
commit 696a9c3a1a
11 changed files with 442 additions and 37 deletions

View 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