This repository has been archived on 2025-10-23. You can view files and clone it, but cannot push or open issues or pull requests.
Files
nub-lang-archive/compiler/NubLang/Modules/Module.cs
2025-09-29 19:04:09 +02:00

45 lines
1.1 KiB
C#

using NubLang.Syntax;
namespace NubLang.Modules;
public class Module
{
private readonly List<DefinitionSyntax> _definitions = [];
public void Register(DefinitionSyntax definition)
{
_definitions.Add(definition);
}
public List<StructSyntax> Structs(bool includePrivate)
{
return _definitions
.OfType<StructSyntax>()
.Where(x => x.Exported || includePrivate)
.ToList();
}
public List<StructTemplateSyntax> StructTemplates(bool includePrivate)
{
return _definitions
.OfType<StructTemplateSyntax>()
.Where(x => x.Exported || includePrivate)
.ToList();
}
public List<FuncSyntax> Functions(bool includePrivate)
{
return _definitions
.OfType<FuncSyntax>()
.Where(x => x.Exported || includePrivate)
.ToList();
}
public List<GlobalVariableSyntax> GlobalVariables(bool includePrivate)
{
return _definitions
.OfType<GlobalVariableSyntax>()
.Where(x => x.Exported || includePrivate)
.ToList();
}
}