summaryrefslogtreecommitdiffstats
path: root/src/symbol-table.c
diff options
context:
space:
mode:
authorTing-Wei Lan <lantw44@gmail.com>2015-12-06 22:46:08 +0800
committerTing-Wei Lan <lantw44@gmail.com>2015-12-06 22:46:08 +0800
commit39b409c9625f427966ae577aa3caa4d8caaa56a0 (patch)
tree73c0602e13440813452fcdcdcbecfcc533bca0df /src/symbol-table.c
parent21e57e72f5d7417bc2704d0356d66c21c269114a (diff)
downloadcompiler2015-39b409c9625f427966ae577aa3caa4d8caaa56a0.tar.gz
compiler2015-39b409c9625f427966ae577aa3caa4d8caaa56a0.tar.zst
compiler2015-39b409c9625f427966ae577aa3caa4d8caaa56a0.zip
Implement semantic checks for type and variable declarations
Diffstat (limited to 'src/symbol-table.c')
-rw-r--r--src/symbol-table.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/symbol-table.c b/src/symbol-table.c
index bd00d23..26a104d 100644
--- a/src/symbol-table.c
+++ b/src/symbol-table.c
@@ -82,4 +82,15 @@ CcmmcSymbol *ccmmc_symbol_table_retrive (
return NULL;
}
+bool ccmmc_symbol_scope_exist(CcmmcSymbolScope *scope, const char *name)
+{
+ int key = hash(name);
+ for (CcmmcSymbol *symbol = scope->hash_table[key];
+ symbol != NULL; symbol = symbol->next) {
+ if (strcmp(name, symbol->name) == 0)
+ return true;
+ }
+ return false;
+}
+
// vim: set sw=4 ts=4 sts=4 et: