diff options
| author | Eugen Wissner <belka@caraus.de> | 2026-08-13 22:55:06 +0200 |
|---|---|---|
| committer | Eugen Wissner <belka@caraus.de> | 2026-08-13 22:55:06 +0200 |
| commit | bf7416a3ef9f0b787dcaebf816f3f3e6e385ff42 (patch) | |
| tree | 26359c705133dbd8e98f06483008a720d0dae9d7 /boot/dependency.cc | |
| parent | ae29de96c94e5c582f4424804464cdd29bf2a013 (diff) | |
| download | elna-bf7416a3ef9f0b787dcaebf816f3f3e6e385ff42.tar.gz | |
Implement fixed-size integers
Diffstat (limited to 'boot/dependency.cc')
| -rw-r--r-- | boot/dependency.cc | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/boot/dependency.cc b/boot/dependency.cc index 9ab5141..bd1251a 100644 --- a/boot/dependency.cc +++ b/boot/dependency.cc @@ -18,6 +18,7 @@ along with GCC; see the file COPYING3. If not see #include "elna/boot/dependency.h" #include "elna/boot/driver.h" +#include "elna/boot/materialization.h" #include "elna/boot/name_analysis.h" #include "elna/boot/type_check.h" #include "elna/boot/validation.h" @@ -25,7 +26,7 @@ along with GCC; see the file COPYING3. If not see namespace elna::boot { - dependency read_source(std::istream& entry_point) + dependency read_source(std::istream& entry_point, const target_info& target) { driver parse_driver; lexer tokenizer(entry_point); @@ -41,10 +42,18 @@ namespace elna::boot { std::swap(outcome.tree, parse_driver.tree); } - declaration_visitor declaration_visitor; + materialization_visitor materialization_visitor(target); + outcome.tree->accept(&materialization_visitor); + + if (materialization_visitor.has_errors()) + { + std::swap(outcome.errors(), materialization_visitor.errors()); + return outcome; + } + declaration_visitor declaration_visitor{}; outcome.tree->accept(&declaration_visitor); - if (!declaration_visitor.errors().empty()) + if (declaration_visitor.has_errors()) { std::swap(outcome.errors(), declaration_visitor.errors()); } |
