static void import(Parser* curr, char* modname, char* alias)
{
+ /* parse the module */
Parser p = {0};
char* path = fs_modfind(curr, modname);
if (!path)
module(&p);
(void)alias;
-// Symbol* sym = symbol_new(p, 0, modname, SYM_MODULE, 0);
-// size_t modid = sym - &p->syms[0];
-//
-// for (size_t i = 0; i < p.nsyms; i++)
-// {
-// if (p.syms[i].export)
-// {
-//// printf("sym: %s\n", p.syms[i].name);
-//// (void)alias;
-// }
-// }
+ /* copy exported symbols to our symbol table */
+ Symbol* sym = symbol_new(curr, 0, modname, SYM_MODULE, 0);
+ size_t modid = sym - &curr->syms[0];
+ printf("%lu\n", modid);
+ for (size_t i = 0; i < p.nsyms; i++)
+ {
+ if (p.syms[i].export)
+ {
+ Symbol* sym = symbol_new(curr, 0, p.syms[i].name, p.syms[i].class, 0);
+ sym->module = modid;
+ }
+ }
}
void compile(char* path)