885b9faca57509a697088c697353a5808e3b7296
2 * Функции инициализации контекста и объектов
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
);
14 * Функции генерации тела модуля
17 void oberon_generate_begin_module(oberon_context_t
* ctx
);
18 void oberon_generate_end_module(oberon_context_t
* ctx
);
21 * Функции генерации и вызова процедур
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
);
29 * Функции генерации операторов
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
);
36 * Функции генерации кода
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
);