...
This commit is contained in:
@@ -1,41 +0,0 @@
|
||||
using NubLang.Syntax;
|
||||
|
||||
namespace NubLang.Modules;
|
||||
|
||||
public class ModuleRepository
|
||||
{
|
||||
private readonly Dictionary<string, Module> _modules = new();
|
||||
|
||||
public ModuleRepository(List<SyntaxTree> syntaxTrees)
|
||||
{
|
||||
foreach (var syntaxTree in syntaxTrees)
|
||||
{
|
||||
var module = GetOrCreate(syntaxTree.Metadata.ModuleName);
|
||||
ProcessSyntaxTree(module, syntaxTree);
|
||||
}
|
||||
}
|
||||
|
||||
private static void ProcessSyntaxTree(Module module, SyntaxTree syntaxTree)
|
||||
{
|
||||
foreach (var definition in syntaxTree.Definitions)
|
||||
{
|
||||
module.Register(definition);
|
||||
}
|
||||
}
|
||||
|
||||
public Dictionary<string, Module> Modules()
|
||||
{
|
||||
return _modules;
|
||||
}
|
||||
|
||||
private Module GetOrCreate(string name)
|
||||
{
|
||||
if (!_modules.TryGetValue(name, out var module))
|
||||
{
|
||||
module = new Module();
|
||||
_modules[name] = module;
|
||||
}
|
||||
|
||||
return module;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user