/* * Plain singly-linked list; usually a few hundred entries, hashing * isn't worth it yet. */ #include "l.h" #include #include Lsym * l_intern(Lnk *l, const char *name) { for (Lsym *s = l->syms; s; s = s->next) if (strcmp(s->name, name) == 0) return s; Lsym *s = calloc(1, sizeof *s); s->name = strdup(name); s->next = l->syms; l->syms = s; return s; } Lsym * l_lookup(Lnk *l, const char *name) { for (Lsym *s = l->syms; s; s = s->next) if (strcmp(s->name, name) == 0) return s; return NULL; }