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

View file

@ -203,8 +203,8 @@ TypeStorage::get_local_type_requirements(const std::string &name) const {
// TODO // TODO
bool TypeStorage::unify(TypeProxy left_proxy, TypeProxy right_proxy, bool TypeStorage::unify(TypeProxy /*left_proxy*/, TypeProxy /*right_proxy*/,
UnifyModePolicy policy) { UnifyModePolicy /*policy*/) {
// Type &left = left_id.get(); // Type &left = left_id.get();
// Type &right = right_id.get(); // Type &right = right_id.get();
@ -261,7 +261,8 @@ bool TypeStorage::unify(TypeProxy left_proxy, TypeProxy right_proxy,
// } // }
// TODO // TODO
return true; // return true;
throw std::exception();
} }
bool TypeStorage::resolve(TypeProxy generic, bool TypeStorage::resolve(TypeProxy generic,
@ -275,6 +276,8 @@ bool TypeStorage::resolve(TypeProxy generic,
// type.mode = mode; // 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("deps/**/xmake.lua")
includes("lang/**/xmake.lua")
add_requires("tree-sitter") 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") -- add_rules("c++.unity_build")
set_languages("c++20") set_languages("c++20")
@ -16,10 +13,11 @@ set_languages("c++20")
target("lang") target("lang")
set_kind("binary") set_kind("binary")
add_includedirs("include") -- add_includedirs("include")
add_includedirs(os.dirs(path.join(os.scriptdir(), "include/**"))) -- add_includedirs(os.dirs(path.join(os.scriptdir(), "include/**")))
add_files("src/**.cpp") add_files("lang/app/**.cpp")
add_packages("tree-sitter") 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_warnings("allextra", "error")
set_rundir("$(projectdir)") set_rundir("$(projectdir)")