mirror of
https://github.com/odin-lang/Odin.git
synced 2026-02-13 06:43:35 +00:00
Add basic package support (no IR support yet)
This commit is contained in:
@@ -6,6 +6,7 @@ struct DeclInfo;
|
||||
|
||||
#define ENTITY_KINDS \
|
||||
ENTITY_KIND(Invalid) \
|
||||
ENTITY_KIND(Package) \
|
||||
ENTITY_KIND(Constant) \
|
||||
ENTITY_KIND(Variable) \
|
||||
ENTITY_KIND(TypeName) \
|
||||
@@ -85,6 +86,12 @@ struct Entity {
|
||||
String deprecated_message;
|
||||
|
||||
union {
|
||||
struct {
|
||||
String fullpath;
|
||||
String name;
|
||||
Scope *scope;
|
||||
// Array<Entity *> imports; // Entity_Package
|
||||
} Package;
|
||||
struct {
|
||||
ExactValue value;
|
||||
} Constant;
|
||||
@@ -189,6 +196,15 @@ Entity *alloc_entity(EntityKind kind, Scope *scope, Token token, Type *type) {
|
||||
return entity;
|
||||
}
|
||||
|
||||
Entity *alloc_entity_package(Scope *scope, Type *type, String fullpath, String name) {
|
||||
Token token = empty_token;
|
||||
token.string = name;
|
||||
Entity *entity = alloc_entity(Entity_Package, scope, token, type);
|
||||
entity->Package.fullpath = fullpath;
|
||||
entity->Package.name = name;
|
||||
return entity;
|
||||
}
|
||||
|
||||
Entity *alloc_entity_variable(Scope *scope, Token token, Type *type, bool is_immutable, EntityState state = EntityState_Unresolved) {
|
||||
Entity *entity = alloc_entity(Entity_Variable, scope, token, type);
|
||||
entity->Variable.is_immutable = is_immutable;
|
||||
|
||||
Reference in New Issue
Block a user