36#include <gtest/gtest.h>
57 main_metadata.exports.append({Compiler_Module_Export_Kind::Global,
"answer", {}});
62 math_metadata.exports.append({Compiler_Module_Export_Kind::Function,
"add", {}});
79 EXPECT_EQ(table.modules.access(1).module_name,
"main.aw");
80 ASSERT_EQ(table.modules.access(1).names.size(), 2u);
81 EXPECT_EQ(table.modules.access(1).names.access(1).name,
"add");
82 EXPECT_TRUE(table.modules.access(1).names.access(1).imported);
91 Compiler_Module_Name_Filter::Function);
93 EXPECT_EQ(result.binding.provider_module_name,
"math.aw");
Reusable top-level name lookup over bound module surfaces.
T & append()
Allocate a new entry to the end of array.
size_t blossom_maximum_cardinality_matching(const GT &g, DynDlist< typename GT::Arc * > &matching, SA sa=SA())
Alias of compute_maximum_cardinality_general_matching().
Main namespace for Aleph-w library functions.
Compiler_Module_Name_Table compiler_build_module_name_table(const Compiler_Module_Binding_Result &bindings)
Builds one reusable per-module name table from bindings.
Compiler_Module_Name_Resolution compiler_resolve_module_name(const Compiler_Module_Binding_Result &bindings, const std::string_view module_name, const std::string_view symbol_name, const Compiler_Module_Name_Filter filter=Compiler_Module_Name_Filter::Any)
Resolves one top-level name through reusable per-module bindings.
Compiler_Module_Link_Result compiler_link_module_surfaces(const DynArray< Compiler_Module_Descriptor > &descriptors, const DynArray< Compiler_Module_Metadata > &metadata, const DynArray< size_t > &order)
Links direct-import module surfaces into visible top-level views.
Compiler_Module_Binding_Result compiler_bind_module_surfaces(const Compiler_Module_Link_Result &linkage)
Binds linked module surfaces into one deterministic name view.
One module descriptor consumed by the reusable resolver.
std::string name
Stable module/source name.
Cached top-level name table over all visible modules.