From 8ee943e0c87563fc19b8836ddd42776dccb35277 Mon Sep 17 00:00:00 2001 From: rlar Date: Sat, 9 Aug 2014 20:49:25 +0200 Subject: [PATCH] numparam, rename `local_symbols' --> `symbols' --- src/frontend/numparam/numparam.h | 3 ++- src/frontend/numparam/spicenum.c | 20 ++++++++++---------- src/frontend/numparam/xpressn.c | 28 ++++++++++++++-------------- 3 files changed, 26 insertions(+), 25 deletions(-) diff --git a/src/frontend/numparam/numparam.h b/src/frontend/numparam/numparam.h index 2000173ab..a838ef65b 100644 --- a/src/frontend/numparam/numparam.h +++ b/src/frontend/numparam/numparam.h @@ -46,7 +46,8 @@ typedef struct _ttdico { /* the input scanner data structure */ int errcount; int symbol_stack_alloc; /* stack allocation */ int stack_depth; /* current depth of the symbol stack */ - NGHASHPTR *local_symbols; /* stack of locally defined symbols */ + NGHASHPTR *symbols; /* stack of scopes for symbol lookup */ + /* [0] denotes global scope */ NGHASHPTR inst_symbols; /* instance qualified symbols - after a pop */ char **inst_name; /* name of subcircuit */ fumas fms[101]; diff --git a/src/frontend/numparam/spicenum.c b/src/frontend/numparam/spicenum.c index ad072b0a6..63f8489be 100644 --- a/src/frontend/numparam/spicenum.c +++ b/src/frontend/numparam/spicenum.c @@ -471,8 +471,8 @@ nupa_del_dicoS(void) dispose(dicoS->dynrefptr); dispose(dicoS->dyncategory); dispose(dicoS->inst_name); - nghash_free(dicoS->local_symbols[0], del_attrib, NULL); - dispose(dicoS->local_symbols); + nghash_free(dicoS->symbols[0], del_attrib, NULL); + dispose(dicoS->symbols); dispose(dicoS); dicoS = NULL; } @@ -577,7 +577,7 @@ nupa_list_params(FILE *cp_out) * we use lazy allocation to save memory. * ----------------------------------------------------------------- */ for (depth = dico_p->stack_depth; depth > 0; depth--) { - NGHASHPTR htable_p = dico_p->local_symbols[depth]; + NGHASHPTR htable_p = dico_p->symbols[depth]; if (htable_p) { fprintf(cp_out, " local symbol definitions for:%s\n", dico_p->inst_name[depth]); dump_symbol_table(dico_p, htable_p, cp_out); @@ -588,7 +588,7 @@ nupa_list_params(FILE *cp_out) * Finally dump the global symbols. * ----------------------------------------------------------------- */ fprintf(cp_out, " global symbol definitions:\n"); - dump_symbol_table(dico_p, dico_p->local_symbols[0], cp_out); + dump_symbol_table(dico_p, dico_p->symbols[0], cp_out); } @@ -616,7 +616,7 @@ nupa_get_param(char *param_name, int *found) *found = 0; for (depth = dico_p->stack_depth; depth > 0; depth--) { - NGHASHPTR htable_p = dico_p->local_symbols[depth]; + NGHASHPTR htable_p = dico_p->symbols[depth]; if (htable_p) { entry_p = (entry *) nghash_find(htable_p, up_name); if (entry_p) { @@ -629,7 +629,7 @@ nupa_get_param(char *param_name, int *found) if (!(*found)) { /* No luck. Try the global table. */ - entry_p = (entry *) nghash_find(dico_p->local_symbols[0], up_name); + entry_p = (entry *) nghash_find(dico_p->symbols[0], up_name); if (entry_p) { result = entry_p->vl; *found = 1; @@ -660,12 +660,12 @@ nupa_add_param(char *param_name, double value) if (dico_p->stack_depth > 0) { /* can't be lazy anymore */ - if (!(dico_p->local_symbols[dico_p->stack_depth])) - dico_p->local_symbols[dico_p->stack_depth] = nghash_init(NGHASH_MIN_SIZE); - htable_p = dico_p->local_symbols[dico_p->stack_depth]; + if (!(dico_p->symbols[dico_p->stack_depth])) + dico_p->symbols[dico_p->stack_depth] = nghash_init(NGHASH_MIN_SIZE); + htable_p = dico_p->symbols[dico_p->stack_depth]; } else { /* global symbol */ - htable_p = dico_p->local_symbols[0]; + htable_p = dico_p->symbols[0]; } entry_p = attrib(dico_p, htable_p, up_name, 'N'); diff --git a/src/frontend/numparam/xpressn.c b/src/frontend/numparam/xpressn.c index eda672418..afb461bdc 100644 --- a/src/frontend/numparam/xpressn.c +++ b/src/frontend/numparam/xpressn.c @@ -254,12 +254,12 @@ initdico(tdico *dico) asize = dico->symbol_stack_alloc = 10;/* expected stack depth - no longer limited */ asize++; /* account for zero */ - dico->local_symbols = TMALLOC(NGHASHPTR, asize); + dico->symbols = TMALLOC(NGHASHPTR, asize); dico->inst_name = TMALLOC(char*, asize); dico->stack_depth = 0; /* top of the stack */ - dico->local_symbols[0] = nghash_init(NGHASH_MIN_SIZE); - nghash_unique(dico->local_symbols[0], TRUE); /* no rewrite of global symbols */ + dico->symbols[0] = nghash_init(NGHASH_MIN_SIZE); + nghash_unique(dico->symbols[0], TRUE); /* no rewrite of global symbols */ dico->inst_symbols = NULL; /* instance qualified are lazily allocated */ @@ -300,11 +300,11 @@ dicostack_push(tdico *dico) /* Just double the stack alloc */ dico->symbol_stack_alloc *= 2; asize = dico->symbol_stack_alloc + 1; /* account for zero */ - dico->local_symbols = TREALLOC(NGHASHPTR, dico->local_symbols, asize); + dico->symbols = TREALLOC(NGHASHPTR, dico->symbols, asize); dico->inst_name = TREALLOC(char*, dico->inst_name, asize); } /* lazy allocation - don't allocate space if we can help it */ - dico->local_symbols[dico->stack_depth] = NULL; + dico->symbols[dico->stack_depth] = NULL; dico->inst_name[dico->stack_depth] = nupa_inst_name; } @@ -329,7 +329,7 @@ dicostack_pop(tdico *dico) * scope variables to an instance qualified hash table. * ----------------------------------------------------------------- */ inst_name = dico->inst_name[dico->stack_depth]; - htable_p = dico->local_symbols[dico->stack_depth]; + htable_p = dico->symbols[dico->stack_depth]; if (htable_p) { SPICE_DSTRING param_name; /* build a qualified name */ spice_dstring_init(¶m_name); @@ -351,7 +351,7 @@ dicostack_pop(tdico *dico) tfree(inst_name); dico->inst_name[dico->stack_depth] = NULL; - dico->local_symbols[dico->stack_depth] = NULL; + dico->symbols[dico->stack_depth] = NULL; dico->stack_depth--; } @@ -359,7 +359,7 @@ dicostack_pop(tdico *dico) int donedico(tdico *dico) { - int sze = nghash_get_size(dico->local_symbols[0]); + int sze = nghash_get_size(dico->symbols[0]); return sze; } @@ -378,7 +378,7 @@ entrynb(tdico *d, char *s) /* look at the current scope and then backup the stack */ for (depth = d->stack_depth; depth > 0; depth--) { - htable_p = d->local_symbols[depth]; + htable_p = d->symbols[depth]; if (htable_p) { entry_p = (entry *) nghash_find(htable_p, s); if (entry_p) @@ -387,7 +387,7 @@ entrynb(tdico *d, char *s) } /* No local symbols - try the global table */ - entry_p = (entry *) nghash_find(d->local_symbols[0], s); + entry_p = (entry *) nghash_find(d->symbols[0], s); return (entry_p); } @@ -509,13 +509,13 @@ nupa_define(tdico *dico, if (dico->stack_depth > 0) { /* can't be lazy anymore */ - if (!(dico->local_symbols[dico->stack_depth])) - dico->local_symbols[dico->stack_depth] = nghash_init(NGHASH_MIN_SIZE); + if (!(dico->symbols[dico->stack_depth])) + dico->symbols[dico->stack_depth] = nghash_init(NGHASH_MIN_SIZE); - htable_p = dico->local_symbols[dico->stack_depth]; + htable_p = dico->symbols[dico->stack_depth]; } else { /* global symbol */ - htable_p = dico->local_symbols[0]; + htable_p = dico->symbols[0]; } entry_p = attrib(dico, htable_p, t, op);