kit

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

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 }