From bf7416a3ef9f0b787dcaebf816f3f3e6e385ff42 Mon Sep 17 00:00:00 2001 From: Eugen Wissner Date: Thu, 13 Aug 2026 22:55:06 +0200 Subject: Implement fixed-size integers --- boot/dependency.cc | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'boot/dependency.cc') 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()); } -- cgit v1.2.3