From f02e90b27e37f91d4409842dd21cd00c999c805d Mon Sep 17 00:00:00 2001 From: Peter Mikkelsen Date: Sat, 15 Jan 2022 22:46:56 +0000 Subject: Implement quad names for variables --- symbol.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) (limited to 'symbol.c') diff --git a/symbol.c b/symbol.c index 8bcaa13..938ab99 100644 --- a/symbol.c +++ b/symbol.c @@ -19,6 +19,8 @@ getsym(Symtab *tab, Rune *name) tab->syms[tab->nsyms-1] = emalloc(sizeof(Symbol)); tab->syms[tab->nsyms-1]->name = runestrdup(name); tab->syms[tab->nsyms-1]->undefined = 1; + tab->syms[tab->nsyms-1]->getfn = nil; + tab->syms[tab->nsyms-1]->setfn = nil; return tab->syms[tab->nsyms-1]; } @@ -28,12 +30,7 @@ newsymtab(void) Symtab *tab = emalloc(sizeof(Symtab)); tab->nsyms = 0; tab->syms = nil; - - Symbol *io = getsym(tab, L"⎕IO"); - io->value.tag = ArrayTag; - io->value.array = mkscalarint(currentsymtab ? globalIO() : 1); - io->value.shy = 0; - io->undefined = 0; + tab->io = currentsymtab ? globalIO() : 1; return tab; } @@ -41,7 +38,6 @@ newsymtab(void) void freesymtab(Symtab *tab) { - print("Freeing symtab\n"); int i; for(i = 0; i < tab->nsyms; i++){ Symbol *s = tab->syms[i]; @@ -50,12 +46,10 @@ freesymtab(Symtab *tab) } free(tab->syms); free(tab); - print("Done freeing symtab\n"); } vlong globalIO(void) { - Symbol *s = getsym(currentsymtab, L"⎕IO"); - return s->value.array->intdata[0]; + return currentsymtab->io; } \ No newline at end of file -- cgit v1.2.3