diff options
author | rodri <rgl@antares-labs.eu> | 2024-08-31 16:07:15 +0000 |
---|---|---|
committer | rodri <rgl@antares-labs.eu> | 2024-08-31 16:07:15 +0000 |
commit | 8cca4d1fe83f792d0f3c5dd897611ea2ff441de0 (patch) | |
tree | 45eb5ba6c3d750819a7b2c13ec35a75c23015631 /s3/sym.c | |
parent | 53d3939960fe177c1958bce8e93c435cba7cf5e3 (diff) | |
download | rhoc-8cca4d1fe83f792d0f3c5dd897611ea2ff441de0.tar.gz rhoc-8cca4d1fe83f792d0f3c5dd897611ea2ff441de0.tar.bz2 rhoc-8cca4d1fe83f792d0f3c5dd897611ea2ff441de0.zip |
stage 3.
Diffstat (limited to 's3/sym.c')
-rw-r--r-- | s3/sym.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/s3/sym.c b/s3/sym.c new file mode 100644 index 0000000..8749791 --- /dev/null +++ b/s3/sym.c @@ -0,0 +1,31 @@ +#include <u.h> +#include <libc.h> +#include "dat.h" +#include "fns.h" + +static Symbol *symtab; + +Symbol * +install(char *s, int t, double v) +{ + Symbol *sym; + + sym = emalloc(sizeof(Symbol)); + sym->name = strdup(s); + sym->type = t; + sym->u.val = v; + sym->next = symtab; + symtab = sym; + return sym; +} + +Symbol * +lookup(char *s) +{ + Symbol *sym; + + for(sym = symtab; sym != nil; sym = sym->next) + if(strcmp(sym->name, s) == 0) + return sym; + return nil; +} |