mirror of
https://github.com/Ed94/Odin.git
synced 2026-07-29 10:50:05 +00:00
Add package flags
This commit is contained in:
@@ -63,9 +63,18 @@ File :: struct {
|
|||||||
name: String,
|
name: String,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Pkg_Flag :: enum u32le {
|
||||||
|
Builtin = 0,
|
||||||
|
Runtime = 1,
|
||||||
|
Init = 2,
|
||||||
|
}
|
||||||
|
|
||||||
|
Pkg_Flags :: distinct bit_set[Pkg_Flag; u32le];
|
||||||
|
|
||||||
Pkg :: struct {
|
Pkg :: struct {
|
||||||
fullpath: String,
|
fullpath: String,
|
||||||
name: String,
|
name: String,
|
||||||
|
flags: Pkg_Flags,
|
||||||
docs: String,
|
docs: String,
|
||||||
files: Array(File_Index),
|
files: Array(File_Index),
|
||||||
entities: Array(Entity_Index),
|
entities: Array(Entity_Index),
|
||||||
@@ -195,8 +204,8 @@ Type_Flag_Proc :: enum u32le {
|
|||||||
C_Vararg = 4,
|
C_Vararg = 4,
|
||||||
}
|
}
|
||||||
|
|
||||||
Type_Flags_BitSet :: distinct bit_set[Type_Flag_BitSet; u32le];
|
Type_Flags_Bit_Set :: distinct bit_set[Type_Flag_Bit_Set; u32le];
|
||||||
Type_Flag_BitSet :: enum u32le {
|
Type_Flag_Bit_Set :: enum u32le {
|
||||||
Range = 1,
|
Range = 1,
|
||||||
Op_Lt = 2,
|
Op_Lt = 2,
|
||||||
Op_Lt_Eq = 3,
|
Op_Lt_Eq = 3,
|
||||||
|
|||||||
@@ -190,9 +190,16 @@ struct OdinDocEntity {
|
|||||||
OdinDocArray<OdinDocString> where_clauses; // Procedures
|
OdinDocArray<OdinDocString> where_clauses; // Procedures
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum OdinDocPkgFlags : u32 {
|
||||||
|
OdinDocPkgFlag_Builtin = 1<<0,
|
||||||
|
OdinDocPkgFlag_Runtime = 1<<1,
|
||||||
|
OdinDocPkgFlag_Init = 1<<2,
|
||||||
|
};
|
||||||
|
|
||||||
struct OdinDocPkg {
|
struct OdinDocPkg {
|
||||||
OdinDocString fullpath;
|
OdinDocString fullpath;
|
||||||
OdinDocString name;
|
OdinDocString name;
|
||||||
|
u32 flags;
|
||||||
OdinDocString docs;
|
OdinDocString docs;
|
||||||
OdinDocArray<OdinDocFileIndex> files;
|
OdinDocArray<OdinDocFileIndex> files;
|
||||||
OdinDocArray<OdinDocEntityIndex> entities;
|
OdinDocArray<OdinDocEntityIndex> entities;
|
||||||
|
|||||||
+19
-1
@@ -509,7 +509,6 @@ OdinDocTypeIndex odin_doc_type(OdinDocWriter *w, Type *type) {
|
|||||||
map_set(&w->type_cache, hash_pointer(type), type_index);
|
map_set(&w->type_cache, hash_pointer(type), type_index);
|
||||||
map_set(&w->type_id_cache, hash_integer(type_index), type);
|
map_set(&w->type_id_cache, hash_integer(type_index), type);
|
||||||
|
|
||||||
|
|
||||||
switch (type->kind) {
|
switch (type->kind) {
|
||||||
case Type_Basic:
|
case Type_Basic:
|
||||||
doc_type.kind = OdinDocType_Basic;
|
doc_type.kind = OdinDocType_Basic;
|
||||||
@@ -1008,9 +1007,28 @@ void odin_doc_write_docs(OdinDocWriter *w) {
|
|||||||
gbAllocator allocator = heap_allocator();
|
gbAllocator allocator = heap_allocator();
|
||||||
|
|
||||||
AstPackage *pkg = pkgs[i];
|
AstPackage *pkg = pkgs[i];
|
||||||
|
|
||||||
|
u32 pkg_flags = 0;
|
||||||
|
switch (pkg->kind) {
|
||||||
|
case Package_Normal:
|
||||||
|
break;
|
||||||
|
case Package_Runtime:
|
||||||
|
pkg_flags |= OdinDocPkgFlag_Runtime;
|
||||||
|
break;
|
||||||
|
case Package_Init:
|
||||||
|
pkg_flags |= OdinDocPkgFlag_Init;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (pkg->name == "builtin") {
|
||||||
|
pkg_flags |= OdinDocPkgFlag_Builtin;
|
||||||
|
} else if (pkg->name == "intrinsics") {
|
||||||
|
pkg_flags |= OdinDocPkgFlag_Builtin;
|
||||||
|
}
|
||||||
|
|
||||||
OdinDocPkg doc_pkg = {};
|
OdinDocPkg doc_pkg = {};
|
||||||
doc_pkg.fullpath = odin_doc_write_string(w, pkg->fullpath);
|
doc_pkg.fullpath = odin_doc_write_string(w, pkg->fullpath);
|
||||||
doc_pkg.name = odin_doc_write_string(w, pkg->name);
|
doc_pkg.name = odin_doc_write_string(w, pkg->name);
|
||||||
|
doc_pkg.flags = pkg_flags;
|
||||||
doc_pkg.docs = odin_doc_pkg_doc_string(w, pkg);
|
doc_pkg.docs = odin_doc_pkg_doc_string(w, pkg);
|
||||||
|
|
||||||
OdinDocPkg *dst = nullptr;
|
OdinDocPkg *dst = nullptr;
|
||||||
|
|||||||
Reference in New Issue
Block a user