source.c (1897B)
1 /* Public source registry API bridge. */ 2 3 #include <kit/source.h> 4 #include <string.h> 5 6 #include "core/core.h" 7 #include "core/pool.h" 8 9 KitStatus kit_source_add_file(KitCompiler* c, const char* path, 10 int system_header, uint32_t* file_id_out) { 11 if (!c || !file_id_out) return KIT_INVALID; 12 return source_add_file(c->sources, path, system_header, file_id_out); 13 } 14 15 KitStatus kit_source_add_memory(KitCompiler* c, KitSlice name, 16 uint32_t* file_id_out) { 17 if (!c || !file_id_out) return KIT_INVALID; 18 return source_add_memory(c->sources, name, file_id_out); 19 } 20 21 KitStatus kit_source_add_memory_sym(KitCompiler* c, KitSym name, 22 uint32_t* file_id_out) { 23 if (!c || !file_id_out) return KIT_INVALID; 24 return source_add_memory_sym(c->sources, name, file_id_out); 25 } 26 27 KitStatus kit_source_add_builtin(KitCompiler* c, KitSlice name, 28 uint32_t* file_id_out) { 29 if (!c || !file_id_out) return KIT_INVALID; 30 return source_add_builtin(c->sources, name, file_id_out); 31 } 32 33 KitStatus kit_source_add_include(KitCompiler* c, uint32_t includer_file_id, 34 uint32_t included_file_id, KitSrcLoc loc, 35 int system, int resolved_system) { 36 if (!c) return KIT_INVALID; 37 return source_add_include(c->sources, includer_file_id, included_file_id, loc, 38 system, resolved_system); 39 } 40 41 KitStatus kit_source_file(KitCompiler* c, uint32_t file_id, 42 KitSourceFile* out) { 43 const SourceFile* f; 44 if (!c || !out) return KIT_INVALID; 45 f = source_file(c->sources, file_id); 46 if (!f) return KIT_NOT_FOUND; 47 memset(out, 0, sizeof *out); 48 out->id = f->id; 49 out->name = f->name; 50 out->path = f->path; 51 out->kind = f->kind; 52 out->system_header = f->system_header; 53 return KIT_OK; 54 }