project structure change

This commit is contained in:
programsnail 2024-07-20 11:30:05 +03:00
parent 0876ce8c76
commit 49edbfb60c
50 changed files with 86 additions and 30 deletions

12
lang/builders/xmake.lua Normal file
View file

@ -0,0 +1,12 @@
includes("../utils/xmake.lua")
includes("../nodes/xmake.lua")
set_languages("c++20")
target("lang.builders")
set_kind("static")
add_includedirs("include", {public = true})
add_files("src/**.cpp")
add_deps("lang.utils", "lang.nodes")
set_warnings("allextra", "error")
set_rundir("$(projectdir)")

View file

@ -1,6 +1,6 @@
#pragma once
#include "basic_printers.hpp"
// #include "basic_printers.hpp"
#include "statement_nodes.hpp"
#include "tree_sitter_wrapper.hpp"
@ -79,7 +79,7 @@ public:
std::optional<AnyStatementProxy> find(const std::string &path);
void print(printers::Printer &printer) const;
// void print(printers::Printer &printer) const;
// // TODO
// void add_statement_children_to_tree();
@ -135,19 +135,19 @@ private:
return true;
}
void print(const std::vector<Node> &nodes,
printers::Printer &printer) const {
printer.print("Node - has statement: ");
printer.print(statement_.has_value() ? "true" : "false");
printer.indent();
for (auto &iter : children_) {
printer.new_indent_line();
printer.print(std::to_string(iter.first) + " -> ");
nodes[iter.second].print(nodes, printer);
}
printer.deindent();
printer.new_indent_line();
}
// void print(const std::vector<Node> &nodes,
// printers::Printer &printer) const {
// printer.print("Node - has statement: ");
// printer.print(statement_.has_value() ? "true" : "false");
// printer.indent();
// for (auto &iter : children_) {
// printer.new_indent_line();
// printer.print(std::to_string(iter.first) + " -> ");
// nodes[iter.second].print(nodes, printer);
// }
// printer.deindent();
// printer.new_indent_line();
// }
private:
std::unordered_map<size_t, size_t> children_;

View file

@ -65,9 +65,9 @@ std::optional<AnyStatementProxy> NameTree::find(const std::string &path) {
return std::nullopt;
}
void NameTree::print(printers::Printer &printer) const {
nodes_[get_root()].print(nodes_, printer);
}
// void NameTree::print(printers::Printer &printer) const {
// nodes_[get_root()].print(nodes_, printer);
// }
// // TODO
// void NameTree::add_statement_children_to_tree() {

View file

@ -203,8 +203,8 @@ TypeStorage::get_local_type_requirements(const std::string &name) const {
// TODO
bool TypeStorage::unify(TypeProxy left_proxy, TypeProxy right_proxy,
UnifyModePolicy policy) {
bool TypeStorage::unify(TypeProxy /*left_proxy*/, TypeProxy /*right_proxy*/,
UnifyModePolicy /*policy*/) {
// Type &left = left_id.get();
// Type &right = right_id.get();
@ -261,7 +261,8 @@ bool TypeStorage::unify(TypeProxy left_proxy, TypeProxy right_proxy,
// }
// TODO
return true;
// return true;
throw std::exception();
}
bool TypeStorage::resolve(TypeProxy generic,
@ -275,6 +276,8 @@ bool TypeStorage::resolve(TypeProxy generic,
// type.mode = mode;
}
}
// TODO
throw std::exception();
}
//

11
lang/nodes/xmake.lua Normal file
View file

@ -0,0 +1,11 @@
includes("../utils/xmake.lua")
set_languages("c++20")
target("lang.nodes")
set_kind("static")
add_includedirs("include", {public = true})
add_files("src/**.cpp")
add_deps("lang.utils")
set_warnings("allextra", "error")
set_rundir("$(projectdir)")

12
lang/printers/xmake.lua Normal file
View file

@ -0,0 +1,12 @@
includes("../utils/xmake.lua")
includes("../nodes/xmake.lua")
set_languages("c++20")
target("lang.printers")
set_kind("static")
add_includedirs("include", {public = true})
add_files("src/**.cpp")
add_deps("lang.utils", "lang.nodes")
set_warnings("allextra", "error")
set_rundir("$(projectdir)")

View file

@ -0,0 +1,12 @@
includes("../utils/xmake.lua")
includes("../nodes/xmake.lua")
set_languages("c++20")
target("lang.type_check")
set_kind("static")
add_includedirs("include", {public = true})
add_files("src/**.cpp")
add_deps("lang.utils", "lang.nodes")
set_warnings("allextra", "error")
set_rundir("$(projectdir)")

8
lang/utils/xmake.lua Normal file
View file

@ -0,0 +1,8 @@
set_languages("c++20")
target("lang.utils")
set_kind("static")
add_includedirs("include", {public = true})
add_files("src/**.cpp")
set_warnings("allextra", "error")
set_rundir("$(projectdir)")

View file

@ -1,12 +1,9 @@
includes("deps/**/xmake.lua")
includes("lang/**/xmake.lua")
add_requires("tree-sitter")
-- add_requires("toml++")
-- add_requires("nlohmann_json")
-- add_requires("cli11")
-- add_requires("catch2")
add_rules("mode.debug", "mode.release")
-- add_rules("mode.debug", "mode.release")
-- add_rules("c++.unity_build")
set_languages("c++20")
@ -16,10 +13,11 @@ set_languages("c++20")
target("lang")
set_kind("binary")
add_includedirs("include")
add_includedirs(os.dirs(path.join(os.scriptdir(), "include/**")))
add_files("src/**.cpp")
-- add_includedirs("include")
-- add_includedirs(os.dirs(path.join(os.scriptdir(), "include/**")))
add_files("lang/app/**.cpp")
add_packages("tree-sitter")
add_deps("tree-sitter-lang")
add_deps("tree-sitter-lang", "lang.utils", "lang.nodes",
"lang.builders", "lang.printers")
-- set_warnings("allextra", "error")
set_rundir("$(projectdir)")