36#include <gtest/gtest.h>
57 main_metadata.exports.append({Compiler_Module_Export_Kind::Global,
"answer", {}});
58 main_metadata.exports.append({Compiler_Module_Export_Kind::Type,
"Answer", {}});
63 math_metadata.exports.append({Compiler_Module_Export_Kind::Function,
"add", {}});
94 EXPECT_EQ(add->provider_module_name,
"math.aw");
98 EXPECT_EQ(answer_type->provider_module_name,
"main.aw");
Reusable namespace-separated semantic environment for modules.
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_Semantic_Environment compiler_build_module_semantic_environment(const Compiler_Module_Name_Table &table)
Builds one namespace-separated semantic environment from a name table.
Compiler_Module_Name_Table compiler_build_module_name_table(const Compiler_Module_Binding_Result &bindings)
Builds one reusable per-module name table from bindings.
const Compiler_Module_Bound_Name * compiler_lookup_module_value(const Compiler_Module_Semantic_Environment &env, const std::string_view module_name, const std::string_view symbol_name) noexcept
Looks up one visible value-namespace binding in a module environment.
const Compiler_Module_Bound_Name * compiler_lookup_module_type(const Compiler_Module_Semantic_Environment &env, const std::string_view module_name, const std::string_view symbol_name) noexcept
Looks up one visible type-namespace binding in a module environment.
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.
const Compiler_Module_Semantic_Module * compiler_find_module_semantic_environment(const Compiler_Module_Semantic_Environment &env, const std::string_view module_name) noexcept
Finds one semantic environment by module name.
One module descriptor consumed by the reusable resolver.
std::string name
Stable module/source name.
Semantic environments for all modules in one compilation unit set.