diff options
-rw-r--r-- | symbol-table.c | 14 | ||||
-rw-r--r-- | symbol-table.h | 1 |
2 files changed, 15 insertions, 0 deletions
diff --git a/symbol-table.c b/symbol-table.c index 785faf8..ca8dd3f 100644 --- a/symbol-table.c +++ b/symbol-table.c @@ -83,4 +83,18 @@ void printSymTab(void) { } } +int fillTab(symtab **tp) { + int cnt = 0; + for (int i = 0; i < TABLE_SIZE; i++) + { + symtab *symptr = hash_table[i]; + while (symptr != NULL) + { + tp[cnt++] = symptr; + symptr = symptr->front; + } + } + return cnt; +} + // vim: set sw=4 ts=4 sts=4 et: diff --git a/symbol-table.h b/symbol-table.h index e234a43..c92986d 100644 --- a/symbol-table.h +++ b/symbol-table.h @@ -10,5 +10,6 @@ typedef struct symtab symtab; symtab* lookup(char *name); void insertID(char *name); void printSymTab(void); +int fillTab(symtab **tp); // vim: set sw=4 ts=4 sts=4 et: |