mirror of
https://codeberg.org/ProgramSnail/lang.git
synced 2025-12-06 23:18:45 +00:00
46 lines
1.3 KiB
C++
46 lines
1.3 KiB
C++
|
|
#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
|