lang/include/basic_builders.hpp

46 lines
1.3 KiB
C++
Raw Normal View History

2023-07-20 14:38:44 +03:00
#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