summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--symbol-table.c14
-rw-r--r--symbol-table.h1
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: