2018-04-23 14:46:54 -07:00
|
|
|
#ifndef LIBABACUS_INTERPRETER_H
|
|
|
|
#define LIBABACUS_INTERPRETER_H
|
|
|
|
|
|
|
|
#include "table.h"
|
|
|
|
#include "tree.h"
|
2018-04-24 16:59:53 -07:00
|
|
|
#include "impl.h"
|
2018-04-23 14:46:54 -07:00
|
|
|
|
|
|
|
struct libab_interpreter_s {
|
2018-05-06 19:01:47 -07:00
|
|
|
libab_ref type_num;
|
2018-04-24 11:32:57 -07:00
|
|
|
libab_ref base_table;
|
2018-04-24 16:59:53 -07:00
|
|
|
libab_impl* impl;
|
2018-04-23 14:46:54 -07:00
|
|
|
};
|
|
|
|
|
|
|
|
typedef struct libab_interpreter_s libab_interpreter;
|
|
|
|
|
|
|
|
void libab_interpreter_init(libab_interpreter* intr,
|
2018-04-24 16:59:53 -07:00
|
|
|
libab_ref* table,
|
2018-05-06 19:01:47 -07:00
|
|
|
libab_ref* type_num,
|
2018-04-24 16:59:53 -07:00
|
|
|
libab_impl* impl);
|
2018-04-23 14:46:54 -07:00
|
|
|
libab_result libab_interpreter_run(libab_interpreter* intr,
|
|
|
|
libab_tree* tree, libab_ref* into);
|
|
|
|
void libab_interpreter_free(libab_interpreter* intr);
|
|
|
|
|
|
|
|
#endif
|