aboutsummaryrefslogtreecommitdiff
path: root/src/as_analyzer.c
diff options
context:
space:
mode:
authorMistivia <i@mistivia.com>2025-03-26 19:10:25 +0800
committerMistivia <i@mistivia.com>2025-03-26 19:10:25 +0800
commit312716a295626f2b60b41777728c7f220fee843d (patch)
tree5747882b5a662c29a734dc66486035f93fe42990 /src/as_analyzer.c
parentb2be728e0cf6f024ecc524b28806012c53ca5206 (diff)
finish fvm-as
Diffstat (limited to 'src/as_analyzer.c')
-rw-r--r--src/as_analyzer.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/as_analyzer.c b/src/as_analyzer.c
index f48353f..5a75794 100644
--- a/src/as_analyzer.c
+++ b/src/as_analyzer.c
@@ -53,6 +53,15 @@ void sym_table_add(struct allocator * alct, struct sym_table* tbl, const char* n
tbl->size += 1;
}
+int sym_table_lookup(sym_table* tbl, const char* name) {
+ for (int i = 0; i < tbl->size; i++) {
+ if (strcmp(name, tbl->buf[i].name) == 0) {
+ return tbl->buf[i].offset;
+ }
+ }
+ return -1;
+}
+
struct sym_table analyze_prog(struct allocator * alct, struct prog * prog) {
process_section_label(alct, prog);
struct stmt * * stmts = prog->stmts->stmts;