DEADSOFTWARE

Первые наработки бэкэнда для jvm
[dsw-obn.git] / src / generator.h
1 /*
2 * Функции инициализации контекста и объектов
3 */
5 void oberon_generator_init_context(oberon_context_t * ctx);
6 void oberon_generator_init_type(oberon_context_t * ctx, oberon_type_t * type);
7 void oberon_generator_init_record(oberon_context_t * ctx, oberon_type_t * type);
8 void oberon_generator_init_var(oberon_context_t * ctx, oberon_object_t * var);
9 void oberon_generator_init_proc(oberon_context_t * ctx, oberon_object_t * proc);
10 void oberon_generator_init_module(oberon_context_t * ctx, oberon_module_t * mod);
11 void oberon_generator_destroy_context(oberon_context_t * ctx);
13 /*
14 * Функции генерации тела модуля
15 */
17 void oberon_generate_begin_module(oberon_context_t * ctx);
18 void oberon_generate_end_module(oberon_context_t * ctx);
20 /*
21 * Функции генерации и вызова процедур
22 */
24 void oberon_generate_begin_proc(oberon_context_t * ctx, oberon_object_t * proc);
25 void oberon_generate_end_proc(oberon_context_t * ctx);
26 void oberon_generate_call_proc(oberon_context_t * ctx, oberon_expr_t * desig);
28 /*
29 * Функции генерации операторов
30 */
32 void oberon_generate_assign(oberon_context_t * ctx, oberon_expr_t * src, oberon_expr_t * dst);
33 void oberon_generate_return(oberon_context_t * ctx, oberon_expr_t * expr);
35 /*
36 * Функции генерации кода
37 */
39 void oberon_generate_code(oberon_context_t * ctx);
40 void oberon_generator_dump(oberon_context_t * ctx, char * path);
41 void * oberon_generator_get_procedure(oberon_context_t * ctx, const char * name);
42 void * oberon_generator_get_var(oberon_context_t * ctx, const char * name);