kit

kit
git clone https://git.ryansepassi.com/git/kit.git
Log | Files | Refs | README

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 }