source.c (1621B)
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_builtin(KitCompiler* c, KitSlice name, 22 uint32_t* file_id_out) { 23 if (!c || !file_id_out) return KIT_INVALID; 24 return source_add_builtin(c->sources, name, file_id_out); 25 } 26 27 KitStatus kit_source_add_include(KitCompiler* c, uint32_t includer_file_id, 28 uint32_t included_file_id, KitSrcLoc loc, 29 int system) { 30 if (!c) return KIT_INVALID; 31 return source_add_include(c->sources, includer_file_id, included_file_id, loc, 32 system); 33 } 34 35 KitStatus kit_source_file(KitCompiler* c, uint32_t file_id, 36 KitSourceFile* out) { 37 const SourceFile* f; 38 if (!c || !out) return KIT_INVALID; 39 f = source_file(c->sources, file_id); 40 if (!f) return KIT_NOT_FOUND; 41 memset(out, 0, sizeof *out); 42 out->id = f->id; 43 out->name = f->name; 44 out->path = f->path; 45 out->kind = f->kind; 46 out->system_header = f->system_header; 47 return KIT_OK; 48 }