pub fn construct_symbol_table(
libraries: impl Iterator<Item = impl Deref<Target = Ast>>,
aliases: HashMap<CompoundIdentifier, String>,
) -> Result<SymbolTable, CompilerError>Expand description
Construct a map of every key and value defined by libraries. The identifiers in the symbol
table will be fully qualified, i.e. they will contain their full namespace. A symbol is
namespaced according to the name of the library it is defined in. If a library defines a value
by extending a previously defined key, then that value will be namespaced to the current library
and not the library of its key.