X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fgenerator.h;h=436a0f8f01b3a3470a5681f436eb7a505f8ed074;hb=8b545fd0349be12160b9f50c1f4b6f072eac436f;hp=08df5c892abb414e4f376e6829a697554a5b6398;hpb=9e6d0f74f74926a9c73d15418c2e9668689061f2;p=dsw-obn.git diff --git a/src/generator.h b/src/generator.h index 08df5c8..436a0f8 100644 --- a/src/generator.h +++ b/src/generator.h @@ -6,9 +6,13 @@ void oberon_generator_init_context(oberon_context_t * ctx); void oberon_generator_init_type(oberon_context_t * ctx, oberon_type_t * type); void oberon_generator_init_record(oberon_context_t * ctx, oberon_type_t * type); void oberon_generator_init_var(oberon_context_t * ctx, oberon_object_t * var); +void oberon_generator_init_temp_var(oberon_context_t * ctx, oberon_object_t * var); void oberon_generator_init_proc(oberon_context_t * ctx, oberon_object_t * proc); void oberon_generator_destroy_context(oberon_context_t * ctx); +void oberon_generator_init_module(oberon_context_t * ctx, oberon_module_t * mod); +void oberon_generator_fini_module(oberon_module_t * mod); + /* * Функции генерации тела модуля */ @@ -24,6 +28,11 @@ void oberon_generate_begin_proc(oberon_context_t * ctx, oberon_object_t * proc); void oberon_generate_end_proc(oberon_context_t * ctx); void oberon_generate_call_proc(oberon_context_t * ctx, oberon_expr_t * desig); +gen_label_t * oberon_generator_reserve_label(oberon_context_t * ctx); +void oberon_generate_label(oberon_context_t * ctx, gen_label_t * l); +void oberon_generate_branch(oberon_context_t * ctx, oberon_expr_t * cond, bool gotoif, gen_label_t * l); +void oberon_generate_goto(oberon_context_t * ctx, gen_label_t * l); + /* * Функции генерации операторов */