aboutsummaryrefslogtreecommitdiff
path: root/src/as_analyzer.h
blob: 988cca01cf25e2af8c9fcdd1a7114849969928d3 (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(allocator_t alct);
void sym_table_add(allocator_t alct, struct sym_table* tbl, const char* name, int pos);

struct sym_table analyze_prog(allocator_t alct, prog_t prog);

#endif // FVM_AS_ANALYZER_H_