aboutsummaryrefslogtreecommitdiff
path: root/src/as_analyzer.h
blob: b59fe3cd8001f6662ecd188f3c092b5318bcff1b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#ifndef FVM_AS_ANALYZER_H_
#define FVM_AS_ANALYZER_H_

#include "as_parser.h"
#include "utils.h"

struct sym_table_entry {
    const char * name;
    size_t offset;
};

struct sym_table {
    int size;
    int cap;
    struct sym_table_entry *buf;
};

struct sym_table new_sym_table(struct allocator * alct);
void sym_table_add(struct allocator * alct, struct sym_table* tbl, const char* name, int pos);

struct sym_table analyze_prog(struct allocator * alct, struct prog * prog);

#endif // FVM_AS_ANALYZER_H_